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

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

我能够为 root 用户设置使用公钥的 ssh 登录,并尝试对非 root 用户应用相同的逻辑。我曾尝试解决此问题,但徒劳无功。我的本地计算机和远程服务器均使用 centos。

以下是我的远程服务器上 sshd_config 文件的要点,

RSAAuthentication yes
PublicKeyAuthentication yes
AuthorizedKeysFile /etc/ssh/user/authorized_keys

PasswordAuthentication no

UsePAM no

PermitRootLogin without-password

当我阅读有关 centos 中的主目录加密时,我已将我的授权密钥文件从用户主目录移至 /etc/ssh/user/authorized_keys。

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

不确定我的配置中缺少什么步骤,因为相同的配置对于根远程登录非常有效。

答案1

删除配置文件中的 authorized_keys 条目。重新启动 sshd。在非 root 用户主目录中创建一个 .ssh 目录。将密钥放入名为 ~/.ssh/authorized keys 的文件中。创建目录 0700 和 authorized_keys 文件 0644。对 root 用户执行相同操作。

答案2

需要明确的是,您需要将原始计算机的公钥文件(例如 ~/.ssh/id_rsa.pub)放置在目标计算机的 ~/.ssh/authorized_keys 中。

如果您复制了 ~/.ssh/id_rsa,则不会起作用。现代 sshd 还会坚持在目标计算机上将 ~/.ssh 设置为模式 700,将 ~/.ssh/authorized_keys 设置为模式 600。

另外:如果可以的话,请使用 sudo 而不是允许通过 ssh 进行 root 登录。

相关内容