%h 和 %p 在这个命令中做什么?

AGa*_*yer 5 proxy netcat

$ ssh -o User=fred -o ProxyCommand="nc -X 5 -x localhost:9150 %h %p" server.example.org

它来自http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

我找不到关于%h%p论点的任何评论。

Cel*_*ada 6

它在联机帮助页中,位于以下部分ProxyCommand

指定用于连接到服务器的命令。命令字符串延伸到行尾,并由用户的 shell 执行。在命令字符串中,任何出现的 '%h' 都将替换为要连接的主机名,'%p' 替换为端口,'%r' 替换为远程用户名。

所以在这种情况下,%h将代表server.example.org%p会代表22

顺便说一句,更简单的拼写方法-o User=fred-l fred.