基于密钥而不是如果密钥+ IP匹配信任SSH服务器


8

是否有可能使ssh客户端不在乎ssh服务器位于哪个IP(如果之前有其他服务器位于该IP之后),而是信任特定的服务器密钥?(也许昵称那些密钥?)我使用动态DNS,并且在某些计算机上启用了IPv6隐私扩展,并且总是被问到它是否认为可以安全连接。另一种可能性是由DHCP分配的地址被分配给不同的ssh服务器,并导致各种“密钥与IP不匹配”错误。


我可能还应该提到,在通过SSL提供服务的网页上,我为每个ssh服务器都有一个公用密钥列表,因此,我有一种简单的方法来检查我是否确实信任特定的服务器密钥集。
Azendale 2011年

Answers:


7

在中为服务器添加一个昵称~/.ssh/config,然后关闭CheckHostIP该服务器的名称。

Host nickname
HostName example.dyndns.org
CheckHostIP no

首次连接服务器之前,您可以带外复制公钥:/etc/ssh/ssh_host_rsa_key.pub从服务器抓取,root@hostname在行尾删除部分,在行首添加example.dyndns.org,然后将行追加到~/.ssh/known_hosts。(可选)运行ssh-keygen -H以对主机名进行哈希处理(这仅在您担心某人窃取您的硬盘或备份时该条目的隐私性时才有用,对于99.99%的人来说这是无用的,因为该信息存在于附近的其他地方)位置)。


使用Host nickname,是否表示我可以这样做ssh nickname?如果是这样,那就很整齐了。
Azendale 2011年

@Azendale:的确,这是为主机名和一组选项(用户名,布尔选项,隧道等)提供昵称的通用功能。
吉尔(Gilles)“所以,别再邪恶了”,

2

/etc/ssh/ssh_config添加行

CheckHostIP no

但是,这使SSH 的安全性降低了一些,因为任何计算机都可以隐藏在您连接的IP或DynDNS名称后面。


1
这根本不会消除任何安全性。存储主机密钥的全部目的是识别另一台计算机。拥有主机密钥时,名称和IP地址与安全性无关。删除虚假消息实际上是为了提高安全性(虚假消息会引起您的注意,这是一种稀缺的资源)。
吉尔(Gilles)“所以,别再邪恶了”,

1
@吉尔斯:联机帮助页不同意。是的,对于没有众所周知的IP到主机关系的连接,您不会失去任何安全性;在其他情况下,您会放弃针对DNS欺骗攻击的保护(如手册中所述)。
htorque 2011年

我不知道您指的是手册页中的哪一段。如果是的说明CheckHostIP,则否,这并不表示您放弃了任何保护。使用CheckHostIP no,欺骗者仍然必须获取服务器的私钥,如果她能够做到这一点,那么无论如何她也不太可能会欺骗其IP地址。
吉尔(Gilles)“所以,别再邪恶了”,

如果我知道我信任密钥,能否举个例子说明DNS欺骗会带来怎样的危险?我使用公共密钥身份验证进行登录,这使得恶意服务器无法获取密码,但是如果我使用密码怎么办?
Azendale 2011年

使用公共密钥身份验证并不能真正保护您的密码,服务器可以使您成为MITM并在您sudo或类似时获得密码。
remram
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.