Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

SSH 免密登录

2024-09-02 1 min read Linux Ronan

1创建密钥

在本地主机终端输入

ssh-keygen

之后一路回车,不出意外的话,你将看到以下内容

img

恭喜,你已经完成第一步!


2检查密钥是否创建成功

在终端输入

ls .ssh

看到以下内容

img

看到其中有id_ed25519(私钥))其中的ed25519在不同设备可能会有不同,有的可能是id_rsaid_ed25519.pub(公钥)两个文件,恭喜,你已经完成第二步了,离成功更近了!


3将公钥复制到远程主机

在终端键入

ssh-copy-id -i <~/.ssh/id_ed25519.pub> <username>@<remote_ip>

其中的<~/.ssh/id_ed25519.pub> 是公钥所处的路径,<username>是用户名,<remote_ip>是主机名或IP 地址。

这条命令会将公钥保存到远程主机的 ~/.ssh/authorized_keys 文件中。

恭喜你,现在可以不再每次登录都需要输入密码了!!!


4问题排查

有时候因为之前的服务器重装了系统,但是在本地主机仍然保存着之前的私钥,所以在重新登录远程服务器时会遇到以下问题

❯ ssh root@<your_remote_ip>

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:voGkOAiSibnvAWCsXNasOzsmdMnc2ff7MHE2jsZRfSE.
Please contact your system administrator.
Add correct host key in /Users/iaa/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /Users/iaa/.ssh/known_hosts:28
Host key for aby.ronan.cloudns.ch has changed and you have requested strict checking.
Host key verification failed.

4.1解决方法

运行以下命令来删除旧的主机密钥

ssh-keygen -R <your_remote_ip>

之后重复ssh连接即可。