SSH 配置说明:无法解析主机名:未提供节点名或服务名,或者未知

SSH 配置说明:无法解析主机名:未提供节点名或服务名,或者未知

我最近在我的一个项目中遇到了这个 ssh 配置文件:

〜/.ssh /配置

Host git-codecommit.*.amazonaws.com
  User my-aws-user
  IdentityFile ~/.ssh/id_rsa


Include config.d/*

~/.ssh/config.d/work-ssh.config

Host gateway
  HostName server1.amazonaws.com
  User ec2-user
  IdentityFile ~/.ssh/my-public-key.pem

Host my-db
  User ec2-user
  HostName server2.amazonaws.com
  IdentityFile ~/.ssh/my-public-key.pem
  ProxyCommand ssh gateway nc %h %p
  LocalForward 25432 another-server.amazonaws.com:5432

在这个配置中,到底在做什么LocalForward?我的理解是,上面的配置将使用gateway( server1.amazonaws.com) 作为堡垒,并允许我连接到server2.amazonaws.com。还是它首先打开到 的 ssh 连接gateway,然后将 上的端口 25432 转发到gateway上的端口 5432 another-server.amazonaws.com?那么server2.amazonaws.com适合放在哪里?

另外,当我运行上述命令时:

ssh -vvv my-db

我收到以下错误:

ssh: Could not resolve hostname my-db: nodename nor servname provided, or not known

我猜这可能意味着配置文件被跳过了,但不确定为什么?

提前致谢!

答案1

在这个配置中 LocalForward 到底起什么作用?

它所做的与您直接连接到“server2”完全相同 - 也就是说,它通过 server2 建立通往另一台服务器的隧道。

它与网关或堡垒主机完全无关。

我收到以下错误 [...] 我猜这可能意味着配置文件被跳过,但不确定为什么?

Include指令仅在 OpenSSH 8.2 中引入 - macOS 捆绑了更旧的版本。

相关内容