Proxy
ssh_config 的 ProxyCommand 可以在連接到遠端機器之前執行本地命令嗎?
在我可以連接到特定的遠端機器之前,我必須執行某個本地命令。所以
ssh me@remote.machine
我必須這樣做local_command ssh me@remote.machine
我想自動化這個,所以我只需要做
ssh remote.machine
.我知道我可以通過創建自己的
ssh
呼叫腳本在 shell 級別實現這一點/usr/bin/ssh
,但是我可以使用ProxyCommand選項來實現ssh_config
嗎?據我了解,我需要類似的東西
Host remote.machine ProxyCommand local_command; ssh me@remote.machine
在我的
~/.ssh/config
文件中,但當然不完全是這個,因為它是圓形的!
如果使用
ProxyCommand
,您必須使用類似的東西/usr/bin/nc
來連接伺服器。為了在連接之前呼叫您的命令,您需要使用
sh -c "command list"
將兩個命令合併為一個。Host remote.machine ProxyCommand sh -c "local_command; /usr/bin/nc %h %p"
更多的:
如果你
local_command
的太複雜,你可以使用腳本:cat my_connect.sh #!/bin/bash local_command /usr/bin/nc "$1" "$2"
ssh 配置變為:
Host remote.machine ProxyCommand /path_to_my_connect.sh %h %p
最後,您可以將自己的代理添加到
/usr/bin/nc