温馨提示×

linux免密登录ssh失败如何解决

小亿
166
2023-09-09 03:00:37
栏目: 智能运维

要在Linux上实现免密登录SSH,需要完成以下步骤:

  1. 生成SSH密钥对:在本地机器上执行以下命令生成SSH密钥对:
ssh-keygen -t rsa

这将生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。

  1. 将公钥复制到远程服务器:使用ssh-copy-id命令将公钥复制到目标服务器上的authorized_keys文件中。例如,如果要将公钥复制到目标服务器的用户名为user的主目录下,请执行以下命令:
ssh-copy-id user@remote_server_ip

输入远程服务器的密码后,公钥将被复制到目标服务器上。

  1. 配置SSH免密登录:在远程服务器上,确保SSH配置文件(/etc/ssh/sshd_config)中的以下设置正确:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

确保这些设置没有被注释掉,并且值为"Yes"。

  1. 重新启动SSH服务:在远程服务器上执行以下命令以重新启动SSH服务:
sudo service ssh restart

如果你仍然无法实现免密登录SSH,请确保执行了上述步骤,并检查以下问题:

  • 键对是否正确生成:确保在本地机器上生成的公钥和私钥文件(id_rsa和id_rsa.pub)位于~/.ssh/目录下。

  • 公钥是否正确复制到目标服务器:确保使用ssh-copy-id命令将公钥复制到目标服务器上的正确位置(通常是目标服务器上的~/.ssh/authorized_keys文件)。

  • 目标服务器的SSH配置是否正确:确保目标服务器的SSH配置文件(/etc/ssh/sshd_config)中的设置正确,特别是RSAAuthentication、PubkeyAuthentication和AuthorizedKeysFile设置。

  • SSH服务是否已重新启动:确保在对目标服务器的SSH配置进行更改后,重新启动了SSH服务。

如果问题仍然存在,你可以尝试查看目标服务器上的/var/log/auth.log文件以获取更多的错误信息,以帮助你进一步解决问题。

0