我想引起这个错误信息:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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)!
...
...
我知道这与主机密钥更改有关。我想触发此错误,因为我正在编写 ssh 库,我需要针对此库进行测试,但我不知道该怎么做才能让它出现。我更改了本地计算机中保存的密钥known_hosts
,也更改了id_rsa
远程计算机上的密钥。但都没有奏效。
我怎样才能使此错误在我尝试登录时出现?
答案1
假设您要从客户端连接到example.com
SSH 服务器。它有一些公钥,您已经在 中拥有了~/.ssh/known_hosts
。
最简单的方法是在客户端上模拟:
使用以下方法生成新密钥
ssh-keygen
:ssh-keygen -t rsa -f rsa -P ""
删除旧的
known_hosts
并用这个键替换它们(以主机名作为前缀):echo -n "example.com " > ~/.ssh/known_hosts cat rsa.pub >> ~/.ssh/known_hosts
当您尝试连接到时,应该会出现错误example.com
:
ssh exmaple.com