美文网首页
SSH连接远程服务器,本地known_hosts文件记录了什么

SSH连接远程服务器,本地known_hosts文件记录了什么

作者: 编程范儿 | 来源:发表于2021-01-20 00:42 被阅读0次

今天工作时,使用ssh命令远程连接公司的本地服务器时,突然出现以下错误

bash-3.2$ ssh argus@192.168.200.8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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:piV54ayBCWv3VIlEVdFSjY2LHJlut5hNTWZi7X0u06A.

Please contact your system administrator.

Add correct host key in /Users/fantingsheng/.ssh/known_hosts to get rid of this message.

Offending ECDSA key in /Users/fantingsheng/.ssh/known_hosts:143 ECDSA host key for 192.168.200.8 has changed and you have requested strict checking.

Host key verification failed.

一开始怀疑是服务器IP换了,于是问同事,同事检查了下服务器的IP还是 192.168.200.8,并没有变;另外用户名密码也没有错。

这就奇怪了???

根据错误信息WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!去搜才找到解决办法

首先进入known_hosts文件,编辑

vi ~/.ssh/known_hosts

找到以上IP的这行,删除后,保存

192.168.200.8 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAqhdyk1HyQKn9nB+Pfh+Hf07vbRaD01E8SqTT57AAjm95KKXkfB3rjvAlSH5eTT160WmwNVcS7SSrJWYFX27YI=

也可以使用如下命令删除

ssh-keygen -R "192.168.200.8"

然后重新执行ssh命令

​bash-3.2$ ssh argus@192.168.200.8

The authenticity of host '192.168.200.8 (192.168.200.8)' can't be established. ECDSA key fingerprint is SHA256:piV54ayBCWv3VIlEVdFSjY2LHJlut5hNTWZi7X0u06A. Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入 yes, 回车,输入密码成功登陆

虽然问题解决了,但还是懵逼状态,为什么IP和用户名,密码都没有变了,就不行了。后来追问同事才知道,他前几天给服务器重装了系统。

问题应该出在这

于是怀疑重装系统导致IP后面这一串字符发生了变化,不能识别到原来的主机了

有了线索,继续往下追

known_hosts文件用于验证远程登陆系统的身份。ssh可以自动将密钥添加到用户文件,也可以手动添加。该文件包含用户已连接过所有主机的公共密钥列表。一般,初次登陆,ssh会自动将远程主机的公钥添加到用户的known_hosts文件。

格式有两种,取决于你的~/.ssh/config文件中的HashKnownHosts No设置,有可能是一段哈希字符串,格式如下:

KnbIIJIPrL/1p7ofUV74sK+j/Gc=|wrjOFnPgoF0afgH0PeRtRqSdgvc= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

这些文件中的每一行都包含以下字段:标记 (可选),主机名,位,指数,模数,注释。字段直接用空格隔开。

或者主机名可以以哈希加密形式存储,这样可以隐藏主机名称和IP地址对外暴露。 哈希过的主机名以” |”字符开头。每一单行上只能允许一个哈希主机名出现,并且上述否定或通配符操作都不适用。

另外一种格式是上面以IP开头的那种格式,包含主机名(可选,取决于是否设置别名),主机IP,随机产生的加密盐,采用SHA-1加密的IP信息及该主机的公钥,字段直接以空格分开。

Reference:

https://en.wikibooks.org/wiki/OpenSSH/Client_Configuration_Files


相关文章

  • SSH连接远程服务器,本地known_hosts文件记录了什么

    今天工作时,使用ssh命令远程连接公司的本地服务器时,突然出现以下错误 bash-3.2$ ssh argus@1...

  • iOS逆向

    SSH安全连接存储服务器公钥 客户端存储服务器ssh公钥文件路径~/.ssh/known_hosts服务器端的ss...

  • remote_open: ssh终端下一键用本地软件开远程文件(

    引子 使用ssh连接服务器,不可避免会有用本地的软件开远程文件的需求,比如查看远程图片,或用本地文本编辑器打开远程...

  • ssh反连接

    将本地服务器ssh断开映射到远程服务器10000端口 通过远程服务器1.1.1.1 ssh 10000端口即可连接...

  • mac 连接服务器

    使用ssh连接远程主机 使用scp命令实现上传下载 从服务器上下载文件 上传本地文件到服务器 从服务器下载整个目录...

  • mac如何连接服务器,上传文件到服务器

    使用ssh连接远程主机 使用scp命令实现上传下载 从服务器上下载文件 上传本地文件到服务器 从服务器下载整个目录...

  • 常用命令

    远程连接服务器:ssh username@192.168.199.111 发送文件到服务器:scp /Users/...

  • Git SSH 不是有效的指令

    问题描述: 使用git时,用ssh连接远程库总是失败,查看之后发现本地没有ssh文件,新建ssh文件时又发现ssh...

  • ssh秘钥生成遇到的问题

    如果本地与远程服务器关联起来,则需要使用ssh key 进行连接。 在本地就需要生成ssh (私钥 和公钥),具体...

  • mac免密登陆Linux

    1.在本地~/.ssh文件夹下生成公钥和私钥 2.将公钥copy到远程服务器~/.ssh文件夹下 3.把远程服务器...

网友评论

      本文标题:SSH连接远程服务器,本地known_hosts文件记录了什么

      本文链接:https://www.haomeiwen.com/subject/vzkczktx.html