鍍金池/ 問(wèn)答/Linux/ 求教這段shell命令

求教這段shell命令

命令如下

ssh -o ProxyCommand='ssh -A root@111.111.111.111 -W %h:%p' -vNL 4006:192.168.4.48:4006 production

我主要是不理解,proxycommand里邊的 -A 和 -W 這兩個(gè)參數(shù)

我查的 man ssh 里邊講 -A 是開(kāi)啟轉(zhuǎn)發(fā) -W 是通過(guò)安全通道將stdin stdout 轉(zhuǎn)發(fā)到 %h:%p 上

我不理解為啥 -W參數(shù)是寫(xiě)在 proxycommand 里邊的,然而 %h %p 獲取的是 production 的地址和端口

然后 -A 和 -W 這兩個(gè)的差別在哪呢?

感謝講解

回答
編輯回答
不將就

假設(shè)有 A,B,C,D 四臺(tái)服務(wù)器。A 是自己的機(jī)器;B 是跳板機(jī);C,D 是線上機(jī)器,不能直接 ssh。

-A 有啥用?
你可以通過(guò) ssh -o ProxyCommand='ssh user@B -p port -W %h:%p' user@C -p port 這樣一條命令登陸到 C。但是當(dāng)你在 C 機(jī)器使用 ssh user@D 嘗試登陸 D 時(shí),你會(huì)失敗。
但是你加上 -A 參數(shù)之后,就不會(huì)失?。?code>ssh -o ProxyCommand='ssh user@B -p port -W %h:%p' -A user@C -p port

所以:你可以認(rèn)為 -A 將你的身份信息轉(zhuǎn)發(fā)了。 可以參考 ForwardAgent 配置。

-W 的話,就是轉(zhuǎn)發(fā) stdin, stdout 到目標(biāo)機(jī)器上...

2017年1月16日 20:45