我需要将我的公共 RSA 密钥放在服务器上的哪里才能允许无密码 ssh 身份验证?

我需要将我的公共 RSA 密钥放在服务器上的哪里才能允许无密码 ssh 身份验证?

我一直在尝试在 Linux 服务器上实现无需密码即可使用 ssh。我查看了很多教程,但对一些关键概念缺乏基本的了解。

我有一个在客户端服务器上生成的旧 rsa 公钥,我想使用它。我登录到 Linux 服务器,并将我的 rsa 公钥添加到 /home/user/.ssh/authorized_keys。尝试登录时仍提示我输入密码。

我的问题是这是否是添加密钥的正确 authorized_keys 文件。将它放在我自己的用户目录中似乎很奇怪,但我看到的关于设置 ssh 的大多数解释都告诉我将公钥放在 中 ~/.ssh/authorized_keys

作为后续问题,我几年前在客户端上生成的公钥是否是所有 shh 连接的标识符,还是我需要生成一个新的?

更新 正在记录的错误如下:

trying public key file /home/bsayegh/.ssh/authorized_keys
Authentication refused: bad ownership or modes for file /home/bsayegh/.ssh/authorized_keys

文件/目录的权限为:

-rwxrwxrwx. 1 bsayegh root     401 May 24 14:30 authorized_keys
 drwx------. 2 bsayegh root    4096 May 24 14:30 .
 drwx------. 3 bsayegh bsayegh 4096 May 25 11:38 ..

答案1

如果您有权访问您想要查看的机器的日志文件。特别是/var/log/messages/var/log/secure。通常,您将找到一条消息,说明为什么 sshd 不接受您的公钥身份验证。

一般来说,你需要做以下事情

  1. 检查 sshd 是否允许公钥认证(参见/etc/ssh/sshd_config)——我认为这是默认设置,因此您至少应该检查选项(例如RSAAuthentication和)PubkeyAuthentication是否被明确禁用。

  2. chown -R ***(your user name)*** ~/.ssh-- 您拥有该文件夹

  3. chmod 700 ~/.ssh——只有您才有权访问 .ssh 文件夹。如果没有权限,sshd 会强制不允许访问。
  4. chmod 600 ~/.ssh/id_rsa-- 与文件夹相同。对于您要使用的任何私钥,这都是必需的
  5. chmod 600 ~/.ssh/authorized_keys-- 一些 sshd 守护进程需要这样做来增加一点安全性,通过不让其他人知道他们需要窃取哪些密钥
  6. restorecon -R ~/.ssh-- 当您的系统已激活 SELINUX 时,为了设置属性以使文件可供 sshd 守护进程访问;使用 ls -Z ~/.ssh 检查文件上的一些与 ssh 相关的属性,例如 RedHat 系统上的 ssh_home_t

编辑(2016-06-07)——添加更多规则

相关内容