“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”的解决方法

有时, 比如我们重装了服务器的操作系统, 发现ssh不能连接了, 报错如下

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:3rzGAFDupq+XohI6PxbwIYYLmtbWPI8s50PVhk/4xeQ.
Please contact your system administrator.
Add correct host key in /c/Users/Administrator.SC-201904061711/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/Administrator.SC-201904061711/.ssh/known_hosts:1
ECDSA host key for class4ever.com has changed and you have requested strict checking.
Host key verification failed.

可以注意一个文件

/c/Users/Administrator.SC-201904061711/.ssh/known_hosts

用编辑器打开这个文件, 可以看到保存了很多服务器的信息, 删掉你不能连接的服务器对应的那行, 然后就可以连接了, 如下图

PuTTY导入密钥文件, 以公钥方式免密登录SSH

首先, 你要有一个密钥文件, 假设它是 box_sshkey

Step1 打开PuTTYgen

->点 Conversions

->点 Import Key, 导入box_sshkey, 如下图

Step2 然后点 Save private key, 把它保存为一个 .ppk文件, 并放在你电脑上一个安全且你记得的地方

Step3 打开PuTTY

->输入你的 Host Name 和 Port

->在Saved Sessions中给这个服务器的连接取一个名字

->点 Save 按钮, 如下图

这样, 在下方的stored sessions表中会多出一个连接

Step4 点左侧的Connection->Data

->在右侧的Auto-login username填入SSH服务器的用户名

Step5 点左侧的Connnection->SSH->Auth

->在右侧如下图那里点击 Browse…按钮, 选择你刚才生成的.ppk文件

Step6 点左侧的 Session

->在右侧单击表中你刚才保存的连接

->再次点Save按钮, 如下图

以后你可以通过双击表中的链接名字来登录你的服务器, 如下图

[服务器]通过SSH上传或下载文件

下载示例指令如下

scp root@www.class4ever.com:~/file.zip file.zip

上传示例指令如下

scp file.zip root@www.class4ever.com:~/file.zip

对以上指令的说明:

上文的下载是从服务器的”~/file.zip”, 下载到运行指令的当前目录

上文的上传是当前目录下有一个文件叫file.zip, 然后将它上传道服务器的~文件夹

以上指令运行于Windows的CMD, 具体格式如下

scp SSH用户名@SSH服务器:路径/文件名 本地文件名
rem 上面这行是下载的格式

scp 本地文件名 SSH用户名@SSH服务器:路径/文件名
rem 上面这行是上传的格式