2016-05-18 102 views
-1

abcasdnaksjbdkahsbdhabsjdhabsjdhbasjhdbajshdbajshbdjasbh隧道SSH:通過其他服務器訪問通過防火牆阻止服務器

+0

http://serverfault.com/questions/368266/ssh-through-multiple-hosts- using-proxycommand是事先重複的(實際上是一個更復雜的問題形式,但任何答案也是這樣的答案)移動到ServerFault,因爲它像這個問題一樣,在StackOverflow上是脫離主題的。 (我實際上是通過ServerFault來討論SuperUser - SSH是最終用戶軟件,它和系統管理工具一樣多 - 但無論如何,這絕不是軟件開發的問題)。 –

+0

(...如果你正在嘗試編寫你自己的SSH客戶端,即用paramiko或Jsch,*然後*它會是一個StackOverflow問題)。 –

回答

1

如果使用OpenSSH:

TRIVIAL WAY

PC> ssh [email protected] 
server1> ssh [email protected] 

PROXY WAY

得到一個netcat在server1上,如果你不能安裝一個,你可以嘗試靜態編譯一個(檢查busybox),下載一個(找到server1和操作系統版本,並檢查它的回購)。如果你有python/perl,那麼有命令的「腳本實現」。

在您~/.ssh/config文件中加入:

Host server1 
    HostName 10.0.0.146 
    User server1_user 

Host server2 
    ProxyCommand ssh -C -q server1 /<server1_path_to>/nc 192.168.0.3 22 
    User server2_user 

ssh server2將提示輸入兩個密碼,如果你不使用密鑰驗證。

由於不需要用於代理的OpenSSH 5.4 netcat的

Host server2 
    ProxyCommand ssh -W %h:%p server1 
    User server2_user 

隧道WAY

PC TTY1> ssh -L 2222:192.168.0.3:22 [email protected] 
PC TTY2> ssh [email protected] -p 2222 
+0

你錯過了代理隧道的方式,使用'ssh -W' :-) – salva

+0

是的,昨天發現了關於它的查爾斯杜菲評論 – xvan