如何在 ssh 登录时引发中间人错误

如何在 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)!
...
...

我知道这与主机密钥更改有关。我想触发此错误,因为我正在编写 ssh 库,我需要针对此库进行测试,但我不知道该怎么做才能让它出现。我更改了本地计算机中保存的密钥known_hosts,也更改了id_rsa远程计算机上的密钥。但都没有奏效。

我怎样才能使此错误在我尝试登录时出现?

答案1

假设您要从客户端连接到example.comSSH 服务器。它有一些公钥,您已经在 中拥有了~/.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

相关内容