SFTP-auth-pubkey

现有两台主机A、B。主机A使用用户名sftp-users通过sftp登录主机B上传文件。

配置公钥登录可以按照如下流程来操作:

  1. 主机A生成公私钥对id_rsa、id_rsa.pub |可用命令ssh-keygen -t rsa生成

  2. 主机B在sftp-users用户的主页目录下创建~/.ssh/authorized_keys文件

  3. 主机B将主机A生成的id_rsa.pub的内容拷贝到上诉文件中,并将authorized_keys文件owner属性设定为sftp-users,权限设定为600。|可以尝试使用 ssh-copy-id进行密钥拷贝。

  4. 主机A使用命令sftp登录主机B进行测试。

如果设定为仅密钥登录,主机B则可以在sshd_config配置文件中屏蔽密码登录:

PasswordAuthentication yes
Match Group sftpusers
ChrootDirectory /sftp/%u
PasswordAuthentication no

使用Match Group可让某些选项只对该用户组生效,上诉配置设定了除了sftpusers用户组外,其他用户都可以用密码登录。

Debug小注解:如果使用公钥登录失败首先查看sftp-users的home目录是否设定正确,可通过/etc/passwd查看,如不正确可使用usermod -d /sftp/sftpusers/home sftpusers修改,必须要保证.ssh/authorized_keys的上级目录为sftp-users的home目录。示例中的认证文件绝对路径为/sftp/sftpusers/home/.ssh/authorized_keys

参考文档:

https://wiki.archlinux.org/index.php/SFTP_chroot