ssh,接受同一服务器IP的两个密钥指纹

弓公园

ssh客户端(默认情况下,至少在Ubuntu 18.04和FreeBSD 12中至少是默认设置)总是检查服务器的密钥指纹是否在known_hosts文件中。

我在局域网中有一台具有双启动功能的主机;两个操作系统都使用相同的静态IP。我想连接ssh他们两个,而不会遇到错误。

这显然违反了对以下内容执行的检查known_hosts:如果我接受一个指纹,它将与主机IP相关;切换操作系统时,指纹会更改,而IP相同,因此我需要手动将其删除,known_hosts然后才能再次连接。我希望在考虑该IP时可以接受一个指纹另一个指纹

客户端解决方案可以解决此问题吗?

我正在使用OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017

注意:我不希望对服务器的指纹进行“不检查”。我只是想知道是否有可能将两个替代指纹(而不仅仅是一个)与服务器的IP地址相关联。

菲利普·库林

您的问题是主机密钥就是这样,它们是主机的密钥。每个主机实际上只应该有一个。当然有几种,因为有几种类型的密钥,但是我会避免依赖密钥类型为单个主机提供多个可接受的密钥。

在服务器端

我的第一个建议是,您是否认真考虑是否真的要在客户端执行此操作。您可以将这两个OS视为同一主机,只需将主机密钥从一个复制到另一个即可。

如果/etc/ssh/ssh_host*从OpenSSH复制,则可以在其他操作系统上使用它们。尽管它们可能需要重新格式化,具体取决于您运行的SSH服务器。


但 ...

请问您为什么排除服务器端解决方案?难道不是最简单的方法就是尝试使两个OS使用相同的主机密钥吗?–菲利普·库林

@PhilipCouling部分出于易于使用:Windows是其中一个操作系统。部分原因是不要将密钥从主机转移到另一个主机,这有时是一种不鼓励的做法。但是主要原因是:如果可能,我希望在ssh客户端配置中获得一定程度的灵活性。– BowPark

我认为您正在寻找的是一种将两个OS视为不同主机的方法,即使它们共享IP和端口号也是如此。


在客户端

也许最可靠的方法是为每个OS设置主机特定的配置。编辑(或创建)~/.ssh/config以添加:

Host windows.dualbootbox
    Hostname 192.168.10.20
    UserKnownHostsFile ~/.ssh/windows.dualbootbox.known_hosts

Host ubuntu.dualbootbox
    Hostname 192.168.10.20
    UserKnownHostsFile ~/.ssh/ubuntu.dualbootbox.known_hosts

您无需指定Hostname每个Host地址是否已经解析为IP。请参阅man ssh_config以获取更多配置选项。

使用以上配置,您可以:

ssh [email protected]
ssh [email protected]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

规避同一服务器上两个站点之间的Web安全限制

同一服务器上两个 Laravel 项目的环境问题

同一服务器上两个域的配置

通过两个不同的网关,使用不同的服务器用户将(SSH)连接到同一服务器

同一服务器上具有相同cookie加密密钥的两个NodeJs应用程序可以共享cookie吗?

我们可以在同一服务器中安装两个报表服务实例吗?

如何配置Nginx(和Stradis)以在同一服务器上正确服务两个Stradi实例?

Hangfire显示了在同一服务器上运行的两个实例v.1.5.3-导致错误

socket.io - 客户端通过同一服务器连接到两个套接字

如何使用apache将两个不同的路径路由到同一服务器

如何在同一服务器上托管两个暴露端口80的Docker容器

在同一服务器上的两个网站有错误的https重定向

在同一服务器上运行ThinkingSphinx的两个版本时出现问题

如何在同一服务器上运行两个spring boot应用程序?

在同一服务器上的docker上运行两个Laravel应用程序并指向子域

使用两个单独的盐将密码分别哈希两次并在同一服务器上保存两个哈希是否安全?

SFTP SSH用户从连接同一服务器的两台主机使用

PHPMYADMIN | 我们如何在两个不同的MySQL数据库(在同一服务器内)中同步两个表?

将IP放入同一服务器

获取SSH服务器密钥指纹

我可以在同一服务中收听两个传感器吗?

使用来自一个 wp-contet/uploads 的图像在同一服务器中安装两个 wordpress

certbot-auto / letencrypt为指向同一服务器的多个域设置一个密钥

如何有效地在同一服务器上的两个远程位置之间传输大文件?

在同一服务器上导入具有相同架构(数据库名称)的两个不同的mysql转储文件

使用Laravel Eloquent在同一服务器上的不同数据库中联接两个MySQL表

如何在具有不同动态DJANGO_SETTINGS_MODULE环境变量的同一服务器上运行两个Django应用

c#EntityFramework:具有DTC的同一服务器上的两个不同数据库上的TransactionScope

无法在同一服务器上的两个分离的CakePHP应用程序上进行身份验证