尝试使用 ~/.ssh/config 时收到错误“ssh:无法解析主机名”

尝试使用 ~/.ssh/config 时收到错误“ssh:无法解析主机名”

我在网上搜索解决方案,但没有一个解决方案对我有用!我正在尝试创建一个堡垒服务器,该服务器具有一个公共 AWS EC2 实例,它将连接到一个私有 EC2 实例。

以下是我的~/.ssh/config文件:

Host bastion
   Hostname <instanceIP>
   User ec2-user
   IdentityFile <keypairPath>
   ProxyCommand none
 Host private
   Hostname <privateIP>
   User ec2-user
   IdentityFile <keypairPath>
   ProxyCommand ssh bastion -W %h:%p

当我尝试运行时ssh bastion收到此错误:

ssh: Could not resolve hostname bastion: Name or service not known

我可以ssh -F config bastion使用 root 身份进行连接(但不能使用本地用户身份进行连接),但我不想每次都输入该参数,因为我已经看到这-F不是必需的。

我也无法ssh -F config private以 root 身份连接。错误信息如下:

ssh: Could not resolve hostname bastion: Name or service not known
ssh_exchange_identification: Connection closed by remote host

/.ssh/config我将文件的最后一行改为

ProxyCommand ssh -F config bastion -W %h:%p

但这又带来了这个错误:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Killed by signal 1

我的配置文件哪里错了,我怎样才能使用本地配置文件进行 ssh 而不是 root?

答案1

我可以用 root 身份连接 ssh -F config bastion(但不能用本地用户连接),

听起来很像

  • ~/.ssh/目录或文件的权限或所有权~/.ssh/config不正确,例如,该文件由 root 而不是尝试连接的实际用户拥有,或者用户无法读取该文件;或者

  • 你把文件放在了错误的用户那里~/.ssh(注意远程控制忽略 $HOME 并始终通过 UID 确定主目录)。

(最后一条注释表示你不能在正常情况下和在须藤,但无论如何您都不需要这么做。)

相关内容