ssh连接的random art不一致

我在本地主要上用ssh-keygen -t ed25519 -C “XXX” 生成ssh密钥对时,同时给了我一个random art image,就是一个字符组成的图像,方便记忆。

然后我用ssh-copy-id name@server命令把密钥传到了虚拟机中,并在虚拟机配置/etc/ssh/sshd_config,禁止了密码登录方式。并且测试结果是,密码方式确实无法登录了。

之后,我在主机设置ssh开启random art:

/etc/ssh/ssh_config
 VisualHostKey yes

之后我使用ssh name@server命令登录虚拟机,可以正常登录,登录前也显示了一个random art图像,但这个图像和我之前host上生成密钥对时显示的不一样,完全不一样。

按我的理解,二者应该是完全一样才对啊,为啥不一样?我就那一个公钥。

另外还有一个问题,虽然ssh连接不能使用密码(必须使用密钥),但filezilla登录(使用sftp协议)很正常,没有任何提示。filezilla是自动使用了密钥么?我并没有授权它使用密钥。

ps:
之后我在~/.ssh目录中看到,除了ssh-keygen生成的密钥对,还有一个known_hosts文件,如果运行ssh-keygen -lv-f ~/.ssh/known_hosts命令,会显示ramdom art图像,与ssh登录虚拟机时显示的相同。

今天我用ssh-copy-id user@ip_address命令把公钥上传到树莓派4b上,显示的random art又是一个完全不同的样子。

看来每上传到一个不同的地方,都会生成一个专门的random art。这样的原因是什么?

还有就是,用ssh-keygen -lv -f ~/.ssh/known_hosts命令查看当前已经存在的fingerprint和randomart的时候,会列出两个,一个虚拟机的,另一个是树莓派4b的。

但有点麻烦的地方是,这两个都是没有任何注释或说明文字的,我必须依靠记忆,否则不知道它们谁是谁。有没有添加简短说明的办法,好方便区分。

生成的时候,给你看的是你自己的公钥的 ramdon art。登录的时候,给你看的是服务器的,因为登录的时候,你要验证的是服务器,不是你自己的公钥对不对。

2 个赞

我之前以为是要验证自己的公钥是是否正确 :joy: