ssh 警告:<代理命令没有主机 IP>

che*_*rdt 6 ssh

我正在尝试 ssh 到远程主机:

ssh host.example.com
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

The authenticity of host 'host.example.com (<no hostip for proxy command>)' can't be established.
RSA key fingerprint is 62:db:31:0b:ce:e3:7b:a1:c7:0f:46:d1:7d:e5:48:10.
Are you sure you want to continue connecting (yes/no)? no 
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)

我正在使用 ssh 配置~/.ssh/config

Host host.example.com
User deployuser
HostName host.example.com
IdentityFile ~/.ssh/deployuser_key
Run Code Online (Sandbox Code Playgroud)

主机已列出/etc/ssh/ssh_known_hosts并且指纹匹配。中没有条目~/.ssh/known_hosts

如果我接受密钥,它将被添加到~/.ssh/known_hosts. 我不确定no hostip for proxy command指示什么,我想了解导致问题的原因。

当我运行 ssh 命令时,-vvv我可以看到 ssh 正在检查/var/lib/sss/pubconf/known_hosts而不是检查/etc/ssh/ssh_known_hosts——我相信这解释了意外的行为(如果不是警告消息)。一旦我添加了主机密钥/var/lib/sss/pubconf/known_hosts(通过 FreeIPA),连接就继续进行,没有警告或提示。

Zor*_*che 4

我不确定该no hostip for proxy命令表示什么,我想了解导致问题的原因。

当您在没有代理的情况下连接到 SSH 服务器时,服务器的 IP 地址将被保存并存储到您的已知主机文件中。当您使用代理时,客户端永远不会获取远程 IP。对于不使用代理的客户端,known_hosts 条目的未散列版本可能如下所示。

srv-01,10.99.4.29 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMOZnp2wcVBSp8ddLuXFrpD8YJGOQ8MzPihHr09qkGS
Run Code Online (Sandbox Code Playgroud)

这不是一个“错误”,甚至不是一个有用的警告。您可以安全地忽略它。

CheckHostIP no我相信您可以通过设置除 之外的选项来抑制“警告” ProxyCommand。该选项基本上告诉 ssh 跳过远程 IP 的存储/检查。

我所知,设置此选项确实不会产生任何安全影响。