SSH 免密登录
1创建密钥
在本地主机终端输入
ssh-keygen
之后一路回车,不出意外的话,你将看到以下内容
恭喜,你已经完成第一步!
2检查密钥是否创建成功
在终端输入
ls .ssh
看到以下内容
看到其中有id_ed25519
(私钥))其中的ed25519在不同设备可能会有不同,有的可能是id_rsa、id_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连接即可。