我想生成機器中的路由器後面的SSH服務器。如何繞過防火牆和NAT與反向SSH隧道
首先,我試圖將SSH綁定到我的公網IP地址:
ssh -R 10002:localhost:22 <ip_address>
然後我提示一個密碼請求,但是我的用戶名密碼似乎並沒有工作。
顯然我知道我的用戶名密碼,所以在我看來,它試圖在同一網絡下的另一臺計算機上進行身份驗證。
任何建議如何解決這個問題?
這也將幫助我如何創建一個路由器後面的SSH服務器的任何替代方案,當你沒有訪問到路由器。
iptables中的端口都開放。
UPDATE
至於建議的Thomas Oster答案我已經試過以下。
在路由器後面,我執行以下命令機:
$ ssh -R10002:localhost:22 <remote_public_ip_address> -l <my_remote_server_username>
<remote_ip_address>
是一個服務器的公網IP和我有充分的控制SSH服務器的remote_ip_address。
<my_remote_server_username>
作爲遠程服務器的用戶名。
在那之後,我試圖從遠程服務器連接到服務器的路由器這樣的背後:
$ ssh -p 10002 <remote_public_ip_address>
但是這個命令會顯示以下輸出:
ssh: connect to host <remote_public_ip_address> port 10002: Connection refused
因此,我使用以下命令在iptables防火牆中打開了10002端口:
sudo iptables -A INPUT -p tcp --dport 10002 -j ACCEPT
在那之後,我再次執行命令,但它顯示了同樣的錯誤消息。
在我的機器後面的路由器我有所有端口在iptables中打開。
更新2
你必須允許在/ etc/SSH /的 remove_public_ip_address服務器的sshd_config portforwarding
我試圖讓在sshd_config portforwarding添加此命令的文件:
LocalForward 10002 <my_remote_public_server_ip>:22
但它給了我這個e RROR消息:
Bad configuration option: LocalForward
「SSH -R ....」 後要離開的窗口中打開?
執行該命令後,它連接到遠程公共機器,是的,我離開了窗口打開。
在創建隧道 後,您可以在公共服務器上使用ssh -p 10002 localhost嗎?
是的,如果我在公共服務器中執行該命令,它在詢問我的憑據後連接。
請在路由器後面的機器上嘗試「ssh localhost」,檢查sshd是否正在運行並正常運行。
這也適用。
更新3
我已經終於能夠使它(再次感謝Thomas Oster)工作
我們將三本用機的工作:
目標計算機:那我們想要連接到。
中東機:一臺服務器充當連接(在我的情況下的Linode)
家用電腦中介:我們在哪裏將訪問到目標計算機。
這些都是我跟着
步驟1中的步驟:
[destination computer]$ vi /etc/ssh/sshd_config
添加GatewayPorts選項:
GatewayPorts是
重新啓動SSH。
第2步:
[destination computer]$ ssh -R 4040:localhost:22 [email protected]
這將通過端口4040
你的公共機器與目標計算機連接後會連接到中間的機器,並提示終端,則必須將此選項卡打開。
第3步:
ssh [email protected] -p4040
或者從中間機器連接:
從家裏連接
[home computer]$ ssh [email protected]
[middle computer]$ ssh [email protected] -p4040
您必須允許remove_public_ip_address服務器的/ etc/ssh/sshd_config中的端口轉發 –
在「ssh -R ....」之後,您是否打開窗口?只要連接處於打開狀態,隧道就會處於活動狀態。它顯示了任何錯誤消息,如「無法綁定到10002」?創建隧道後,您可以在公共服務器上使用ssh -p 10002 localhost嗎? –
請在路由器後面的機器上嘗試「ssh localhost」,檢查sshd是否正在運行並正常運行。 –