ssh 的一些坑

ssh 中的小坑

起因

  • 今天用 VMware-Fusion 创建新的虚拟机,因为直接操作终端,无法复制粘贴,所以我用本机ssh连接到虚拟机中

  • 遇到这样的问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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:jl/PgGqyvsX6LohbWIJpfF6KqJpACrHeqSbSEQN1gqk.
Please contact your system administrator.
Add correct host key in /Users/qinhan/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/qinhan/.ssh/known_hosts:28
ECDSA host key for 172.16.52.132 has changed and you have requested strict checking.
Host key verification failed.
  • 经过google,出现这个问题的原因是,第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中。

可使用以下指令查看:

1
ssh-keygen -l -f ~/.ssh/known_hosts

问题原因

  • 之前创建的虚拟机被我删掉,然后重新建了。

  • 但是ip却没有变。

  • 有的时候由于服务器重新安装系统了,也会出现以上错误。

解决

1
ssh-keygen -R 服务器端的ip地址
  • 会出现以下提示

    1
    2
    3
    # Host [服务器IP] found: line 1 type RSA
    /用户home目录/.ssh/known_hosts updated.
    Original contents retained as /用户home目录/.ssh/known_hosts.old
  • 重新连接即可