gpt4 book ai didi

linux - 使用隧道时的 .ssh/known-host 文件设置

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:34:26 24 4
gpt4 key购买 nike

我有一个名为 tnl 的脚本,用于帮助\设置和使用通过 ssh 的隧道。它会自动配置网关,然后确定我的程序应该使用哪些端口。在我的配置文件中,我可能有:

gateway: -system dmgwy01 -start 2000 -background
system: -system foo01
system: -system foo02
system: -system foo03

当我运行命令时:

$ tnl start dmgwy01

这将开始使用以下端口建立隧道:

 ssh -N -c 3des dmgwy01 -L 2000/foo01/22 -L 2001/foo02/22 -L 2002/foo03/22

请注意,我不必为各个系统分配端口。这是由我的脚本自动完成的。

现在,我可以通过以下方式启动隧道:

$ tnl ssh foo01

效果很好。直到我更改我的配置文件并添加一个新系统:

gateway: -system dmgwy01 -start 2000 -background
system: -system bar01
system: -system foo01
system: -system foo02
system: -system foo03

现在,隧道是这样开始的:

 ssh -N -c 3des dmgwy01 -L 2000/bar01/22 -L 2001/foo01/22 -L 2002/foo02/22 -L 2003/foo03/22

请注意,各种系统的端口编号已更改。没关系,我真的不在乎实际的端口号。但是,现在当我使用隧道时,我得到:

$ tnl ssh bar01               
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 RSA key sent by the remote host is
xx:xx:xx:xx:xx...
Please contact your system administrator.
Add correct host key in $HOME/.ssh/known_hosts to get rid of this message.
Offending RSA key in $HOME/.ssh/known_hosts:1
RSA host key for [localhost]:2000 has changed and you have requested strict checking.
Host key verification failed.

我已将其追溯到我的 ~/.ssh/known_hosts 文件。当我进行原始设置时,~/.ssh/known_hosts 是这样设置的:

[localhost]:2000 ssh-rsa (Fingerprint for f0001)
[localhost]:2001 ssh-rsa (Fingerprint for foo02)
[localhost]:2002 ssh-rsa (Fingerprint for f0003)

现在,[localhost]:2000bar01 而不是 foo01,所以它们的指纹当然不同。我在尝试访问 foo01foo02 时也会遇到同样的问题,因为它们的端口号已更改,而且它们的指纹也不匹配。

有没有办法解决这个问题?是否可以强制我的 .known_hosts 使用系统名称而不是端口号?是否有可能以某种方式向我的 .known_hosts 文件添加一个注释,将主机映射到主机名,并允许我将主机名重新映射到以前的端口?

我可以通过关闭 StrictHostKeyChecking 来解决这个问题,但这不一定能解决问题。当我更改配置并重新计算主机 key 时,我可以简单地编辑我的 known_hosts,但我试图让事情变得简单。

有什么建议吗?

最佳答案

鉴于您的脚本 tnl 已经整理出本地端口号和要转发到的主机名之间的映射。修改 known_hosts 文件使同一本地端口映射到同一主机不仅仅是一小步 - known_hosts 中的每一行都包含此信息。

关于linux - 使用隧道时的 .ssh/known-host 文件设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21993792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com