为非root用户设置公钥授权的SSH

我能够使用公共密钥为root用户设置sshlogin,并试图对非root用户应用相同的逻辑。 我试图排除这个问题是徒劳的。 我使用本地计算机和远程服务器的centos

这里是我的远程服务器的sshd_config文件的要点,

RSAAuthentication yes PublicKeyAuthentication yes AuthorizedKeysFile /etc/ssh/user/authorized_keys PasswordAuthentication no UsePAM no PermitRootLogin without-password 

我已经将我的授权密钥文件从用户的家中移到了/ etc / ssh / user / authorized_keys,因为我在centos中阅读了有关家庭目录encryption的内容。

我还更改了与非root用户关联的所有文件/目录的所有权。

不知道我在configuration中缺less什么步骤,因为相同的configuration对于根远程login非常有效。

删除configuration文件中的authorized_keys项。 重新启动sshd。 在非root用户主目录中创build一个.ssh目录。 把密钥放在一个名为〜/ .ssh / authorized keys的文件中。 使目录0700和authorized_keys文件0644.对root用户执行相同操作。

为了清楚起见,你需要来自原始机器的PUBLIC密钥文件(例如〜/ .ssh / id_rsa.pub)在目标机器的〜/ .ssh / authorized_keys中。

如果你复制〜/ .ssh / id_rsa那么这是行不通的。 现代的sshd也会坚持〜/ .ssh是模式700,〜/ .ssh / authorized_keys在目标机器上是模式600。

除此之外:如果可以的话,使用sudo而不是通过sshlogin。