解决Linux SSH无密钥登录失败问题 (linux ssh无密钥失败)

SSH是一种常用的协议,旨在提供安全的远程登录和执行远程命令。SSH允许用户在不暴露明文密码的情况下连接到远程主机,因为用户只需使用密钥对进行身份验证。然而,有时SSH无法使用密钥对进行身份验证,而是需要使用密码进行身份验证。这种情况下,有时无法使用密码进行身份验证,这可能是因为一些配置错误或安全问题。

本文将介绍如何解决在Linux系统中SSH无密钥登录失败的问题。

1.检查目标主机上的SSH配置

在进行SSH无密钥登录时,目标主机的SSH配置非常重要。确保以下设置已正确设置:

允许无密码登录:确保目标主机上的SSH设置允许无密码登录。打开/etc/ssh/sshd_config文件,并确保以下设置:

RSAAuthentication yes

PubkeyAuthentication yes

禁用密码身份验证:禁用密码身份验证可以增加安全性,但需要使用密钥对进行身份验证。在此设置时,请务必小心,确保您在使用SSH之前已正确设置密钥对。

PasswordAuthentication no

保存更改后,重启SSH服务。

2.检查本地主机上的SSH配置

确保您的本地主机安装了SSH客户端,并正确配置SSH。

检查本地主机上的SSH配置文件/etc/ssh/ssh_config,确保以下设置已启用:

IdentityFile ~/.ssh/id_rsa(如果您的密钥是id_rsa)

StrictHostKeyChecking no

UserKnownHostsFile=/dev/null

保存更改并退出文件。

3.生成新的SSH密钥对

如果您尚未生成SSH密钥对,则需要生成新的密钥对。如果您已经有SSH密钥对,则可以跳过此步骤。

要生成新的SSH密钥对,请在本地主机上打开终端,然后运行以下命令:

$ ssh-keygen

依据提示输入以下信息:

输入密钥的名称(默认名称为id_rsa)。

输入密码(如果需要)。

4.将公钥添加到目标主机上

要使用SSH密钥对进行身份验证,您需要将公钥添加到目标主机的用户帐户中。

打开终端并运行以下命令:

$ ssh-copy-id user@remote_host

其中,user和remote_host都是您要登录的目标主机的用户名和主机名。

输入您的密码,然后等待公钥上传。

5.测试SSH连接

您需要测试SSH连接是否正常工作。

在本地主机的终端上,运行以下命令:

$ ssh user@remote_host

如果所有设置正确,则您应该无需输入密码即可连接到远程主机。如果登录成功,则可结束此过程。

结论

本文介绍了如何解决Linux系统中SSH无密钥登录失败的问题。如果您遇到此问题,请尝试按照本文所述的步骤进行处理,以便您可以快速轻松地解决问题。

相关问题拓展阅读:

root账户用ssh-keygen创建公私钥失败怎么回事

使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机。

ssh-keygen 创建公钥和密钥。

ssh-copy-id 把磨销本地主机的公钥复制到远程主机的authorized_keys文件上。

ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限 。

步骤1: 用 ssh-key-gen 在本地主机上创建公钥和密钥

ligh@local-host$ ssh-keygen -t rsa

Enter file in which to save the key (/home/jith/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/jith/.ssh/id_rsa.

Your public key has been saved in /home/jith/.ssh/id_rsa.pub.

The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9

ligh@local-host

步骤2: 用 ssh-copy-id 把公世游厅钥复制到远程主机上

ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub

ligh@remote-host‘s password:

Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in:

.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.

步骤3: 直接登录远程主机

ligh@local-host$ ssh remote-host

Last login: Sun Nov 16 17:22:from 192.168.1.2

ligh@remote-host$

linux ssh无密钥失败的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux ssh无密钥失败,解决Linux SSH无密钥登录失败问题,root账户用ssh-keygen创建公私钥失败怎么回事的信息别忘了在本站进行查找喔。


数据运维技术 » 解决Linux SSH无密钥登录失败问题 (linux ssh无密钥失败)