Ssh
在 /etc/hosts 或 ssh_config 中使用別名
我已經配置了一個堡壘或(跳轉)框來訪問虛擬專用網路。
#ssh_config Host bastion HostName 14.90.140.120 User me IdentityFile ~/.ssh/me ForwardAgent yes Host 10.1.* User me IdentityFile ~/.ssh/me ProxyCommand ssh bastion -W %h:%p
我能夠毫無問題地通過 ssh 進入堡壘和 10.1.1.6 地址。
我想做的是添加如下條目。注意:我目前沒有時間使用 DNS,但這是我的首選方法。
#/etc/hosts 10.1.1.6 my-host-inside-vpc.corp.internal
但是,當我這樣做並嘗試訪問機器時,我得到以下資訊
➜ ~ ssh -vvv my-host-inside-vpc.corp.internal debug1: Reading configuration data /home/me/.ssh/config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to my-host-inside-vpc.corp.internal [10.1.1.6] port 22.
此時操作超時。
Host
匹配您連接時使用的名稱,而不是dns 解析後的 ip。嘗試
Host *corp.internal
改用。根據我們在評論中的討論,如果您想使用符號名稱,但需要將它們解析為堡壘主機的 IP,那麼您可以像這樣在 ProxyCommand 中使用子表達式。
ProxyCommand ssh bastion -W $(getent hosts $h | cut -d " " -f1):%p