我最近在我的一个项目中遇到了这个 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 捆绑了更旧的版本。