通过 SSH 进入双启动计算机

通过 SSH 进入双启动计算机

因此,像往常一样,我有一个双启动的 Kubunutu / Windows 7 盒子(带有 cygwin),在本地 192.168.0.x 范围的某个静态 IP 上,并且我想从我的其他盒子通过 SSH 连接到它,无论它运行的是哪个系统。

问题是 - 我分别配置了 Kubuntu 和 Windows 7 部分,因此它们具有不同的 ssh 主机密钥(这是双启动设置所固有的),但也有用户名,并且IdentityFile(这非常尴尬,当我选择 Windows 7 帐户名时我并没有多想)并且 ssh 会变得疯狂,因为每次我启动到不同的操作系统时,它都会认为有人在进行 MITM 攻击,因为同一 IP 的密钥发生了变化。

我能做什么呢?每次登录时删除~/.ssh/known_hosts并注释掉不同部分都行得通,但我宁愿正确地解决它。~/.ssh/config

答案1

我要自己回答这个问题。

首先,我在 cygwin 中重命名了我的用户帐户,/etc/passwd但没有更改 Windows 帐户名,然后/home/myoldname转到/home/mynewname

然后我~/.ssh/authorized_keys从 Ubuntu 复制到 cygwin,这样我就可以使用相同的身份密钥来访问两者。

然后我在~/.ssh/config访问它们的机器上添加了以下几行:

Host 192.168.*.*
  User mynewname
  IdentityFile /path/to/identity.key
  UserKnownHostsile /dev/null
  StrictHostKeyChecking no

这样可以防止保存密钥文件,每次我登录时都会收到有点烦人的消息:

Warning: Permanently added '192.168.x.x.' (RSA) to the list of known hosts.

我可以忍受这一点。

答案2

如果有人想知道,您可以在 .ssh/known_hosts 中拥有两个具有相同 IP 地址的条目。如果其中一个条目有效,SSH 将接受主机。

您只需手动编辑 .ssh/known_hosts,或者您可以注释掉一个,使用另一个 ssh,然后取消注释。

例子:

  1. 您通过 ssh 进入 Kubuntu
  2. 在与你的 IP 地址对应的条目中添加一个破折号
  3. 您使用 ssh 进入 Windows
  4. 取消注释 .ssh/known_hosts 中 kubuntu 的条目
  5. 你可以 ssh 进入两个系统而无需任何警告或任何

相关内容