我使用的是 RHEL 6。我有一个用户 Jack,它没有 shell 访问权限,但有 SFTP 权限。对于我自己的用户,我ssh-keygen
使用 jack(用户)的命令创建了一个 RSA 密钥对。我.ssh
在 jack 的主目录下创建了文件夹。此外,我authorized-keys
还在 下创建了包含公钥的文件.ssh
。
[root@myserver jackhome]# ls -ld .ssh
drwx------ 2 jack jack 4096 Dec 20 11:38 .ssh
[root@myserver jackhome]# ls -l .ssh
-rw------- 1 jack jack 405 Dec 20 11:38 authorized_keys
[root@myserver jackhome]# ls -ld /opt/apps/FTP/jackhome
drwxr-x--- 9 root jack 4096 Dec 20 11:37 /opt/apps/FTP/jackhome
但我无法使用私钥进行 SFTP。但使用 SFTP 密码的连接工作正常。我通过 SFTP 与我自己的用户连接并.ssh
在我的主目录中使用相同的authorized_keys 文件和文件夹来测试密钥对;它工作得很好。
我有一点困惑。有任何想法吗?
更新:我已将 jackhome 的所有者更改为 jack 而不是 root,即使使用密码,我也失去了 sftp 访问权限:
[root@myserver jackhome]# ls -ld /opt/apps/FTP/jackhome
drwxr-x--- 9 jack jack 4096 Dec 20 11:37 /opt/apps/FTP/jackhome
更新2:我在 sshd_config 文件中有以下设置。 Jack 属于 sftponly 组。这可能是他无法连接 rsa 密钥的原因吗?
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
答案1
尝试使用带有-v
标志的 sftp 并粘贴您在此处获得的内容。使用该-v
标志将提高日志记录级别(详细)。
例子:
sftp -i /home/jack/.ssh/id_rsa -v [email protected]