设置ssh免密登录服务器

本文最后更新于:2021年8月26日 上午

问题及解决

今天在用本地机器ssh连接到我的阿里云服务器时,报了下面的错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
muzing@muzing-PC:~$ ssh root@121.XX.XXX.XXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ECDSA key sent by the remote host is
SHA256:ez1DW+yYdDdscitJap7bQim+65hhQwDb8Nbi0Lsjjk4.
Please contact your system administrator.
Add correct host key in /home/muzing/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/muzing/.ssh/known_hosts:1
remove with:
ssh-keygen -f "/home/muzing/.ssh/known_hosts" -R "121.XX.XXX.XXX"
ECDSA host key for 121.XX.XXX.XXX has changed and you have requested strict checking.
Host key verification failed.
muzing@muzing-PC:~$

可能跟我重置过云服务器的系统盘有关

解决方案:在/home/muzing/.ssh/known_hosts中删除原有信息

公钥登录

每次通过口令登录远程机器,都需要输一遍密码,比较繁琐

使用公钥登录,便捷同时提高安全性

在本地机器上生成密钥对

使用ssh-keygen命令生成密钥对:

1
ssh-keygen -t rsa  #-t表示类型选项,这里采用rsa加密算法

然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa公钥文件 id_rsa.pub

将公钥复制到远程主机中

使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中

1
ssh-copy-id root@121.XX.XXX.XXX 

此后每次ssh连接至远程服务器就不需要输入密码啦


设置ssh免密登录服务器
https://muzing.top/posts/61732/
作者
muzing
发布于
2020年9月19日
更新于
2021年8月26日
许可协议