注意:
在设置多用户免密码登录 SFTP 之前要先搭建 SFTP
正文:
步骤一:指定 SFTP 公钥的存放位置
1.1 修改 /etc/ssh/sshdsftp_config 配置文件
# vim /etc/ssh/sshdsftp_config
并将部分内容修改如下:
......
Subsystem sftp internal-sftp -l VERBOSE -f LOCAL3
Match LocalPort 2222
Match Group sftp
ChrootDirectory /%u
AuthorizedKeysFile /etc/ssh/authorized_keys/%u/.ssh/authorized_keys
ForceCommand internal-sftp -m 770
AllowTcpForwarding no
X11Forwarding no
(
补充:
1) 这里以将:
SFTP 的端口设置为 2222
SFTP 用户可以进入的目录只能为 /<user>
SFTP 用户存放的公钥的文件为 /etc/ssh/authorized_keys/<user>/.ssh/authorized_keys
SFTP 上传的文件默认权限是 770 (-m 770 参数也可以使用 -u 770 替代,但是 -u 参数有时候会不起作用)
为例
2) 其它配置方案可以参考
SFTP 的配置案例
)
(注意:当使用 %u 参数来保证不通的用户使用不通的 SFTP 目录时,用户名为 user_a 、user_b、user_c 的用户可能会使用同一个名为 user 的目录)
1.2 让限制 SFTP 用户可以进入的目录的设置生效
# systemctl restart sshdsftp
步骤二:创建 /etc/ssh/authorized_keys 目录
2.1 进入 /etc/ssh/ 目录
# cd /etc/ssh/
2.2 创建 /etc/ssh/authorized_keys 目录
# mkdir authorized_keys
2.3 更改 /etc/ssh/authorized_keys 目录的所属主和所属组
# chown root:root authorized_keys
2.4 更改 /etc/ssh/authorized_keys 目录的权限
# chmod 755 authorized_keys
步骤三:创建 /etc/ssh/authorized_keys/<user>/ 目录
3.1 进入 /etc/ssh/authorized_keys 目录
# cd authorized_keys
3.2 创建 /etc/ssh/authorized_keys/<user>/ 目录
# mkdir sftpuser
3.3 更改 /etc/ssh/authorized_keys/<user>/ 目录的所属主和所属组
# chown sftpuser:sftpuser sftpuser
3.4 更改 /etc/ssh/authorized_keys/<user>/ 目录的权限
# chmod 755 sftpuser
步骤四:创建 /etc/ssh/authorized_keys/<user>/.ssh 目录
4.1 进入家目录
# cd <user name>
4.2 创建 /etc/ssh/authorized_keys/<user>/.ssh 目录
# mkdir .ssh
4.3 更改 /etc/ssh/authorized_keys/<user>/.ssh 目录的所属主和所属组
# chown sftpuser:sftpuser .ssh
(补充:这里用户名是 sftpuser 主组名是 sftpuser 为例)
4.4 更改 /etc/ssh/authorized_keys/<user>/.ssh 目录的权限
# chmod 700 .ssh
步骤五:创建 /etc/ssh/authorized_keys/<user>/.ssh/authorized_keys 文件
5.1 进入 /etc/ssh/authorized_keys/<user>/.ssh 目录
# cd .ssh
5.2 创建 /etc/ssh/authorized_keys/<user>/.ssh/authorized_keys 文件
# touch authorized_keys
5.3 更改 /etc/ssh/authorized_keys/<user>/.ssh/authorized_keys 文件的所属主和所属组
# chown sftpuser:sftpuser authorized_keys
(补充:这里用户名是 sftpuser 主组名是 sftpuser 为例)
5.4 更改 /etc/ssh/authorized_keys/<user>/.ssh/authorized_keys 文件的权限
# chmod 600 authorized_keys
(补充:在本文步骤二中的 authorized_keys 文件也可以通过使用 ssh-copy-id 命令创建以后拷贝到 /etc/ssh/authorized_keys/<user>/.ssh/ 目录下)
步骤六:复制 SSH 公钥
# vi authorized_keys
将 SSH 公匙复制于此
(步骤略)
(补充:在本文步骤五和步骤六中 authorized_keys 文件也可以通过以 ssh-copy-id 命令创建以后拷贝到 /etc/ssh/authorized_keys/<user>/.ssh/ 目录下)
参考文献:
https://access.redhat.com/solutions/3787571