使用遠端埠轉發 SSH 到較舊的 Linux 機器
我在支持 NAT 的路由器後面有一個舊的 Linux 機器(版本 2.6.12,由一位同事編譯),我想從遠端 PC 訪問它。盒子上執行著一個 SSH 守護程序,但由於還沒有 SSH 客戶端,我們編譯了一個舊的 Dropbear 客戶端,它在創建隧道時可以正常工作。
我應該注意到 SSH 守護程序在埠 55000 上執行,並且 Dropbear 客戶端的版本是 v0.53。
但是,使用遠端埠轉發時會出現問題:
./dbclient -N -R myserver.com:10022:localhost:55000 me@myserver.com
這會提示我輸入密碼,從 myserver.com 可以看到連接成功:
sudo netstat -tulpn | grep 10022 tcp 0 0 xx.xx.xx.xx:10022 0.0.0.0:* LISTEN 31512/sshd: me
但是,當嘗試從我的 Mac 或 Ubuntu(OpenSSH_7.4p1,LibreSSL 2.5.0)使用隧道時,並沒有發生太多事情。
ssh -p 10022 test@myserver.com
只是永遠掛著。使用者“test”存在於我的 Linux 機器上。在詳細模式下,我得到以下資訊:
ssh -p 10022 test@myserver.com -v OpenSSH_7.4p1, LibreSSL 2.5.0 debug1: Reading configuration data /Users/me/.ssh/config debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to myserver.com [xx.xx.xx.xx] port 10022. debug1: Connection established. debug1: identity file /Users/me/.ssh/id_rsa type 1 debug1: key_load_public: No such file or directory debug1: identity file /Users/me/.ssh/id_rsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/me/.ssh/id_dsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/me/.ssh/id_dsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/me/.ssh/id_ecdsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/me/.ssh/id_ecdsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/me/.ssh/id_ed25519 type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/me/.ssh/id_ed25519-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_7.4
我對 SSH 的了解相當基礎,而遠端轉發對我來說非常陌生,所以我不知道接下來該嘗試什麼。我在 Ubuntu 和 Mac 上嘗試過 Dropbear 客戶端,它也只是掛起。我認為它沒有詳細模式(?)。我嘗試了相反的方法,即在 Ubuntu 中設置遠端埠轉發,然後從 Linux 機器連接,這樣就可以了。
只是一些配置問題嗎?可能是 SSH 守護程序不歡迎我的連接,我該如何檢查或修復它?我的 PC 上是否需要舊的 SSH 客戶端?
任何幫助是極大的讚賞!
編輯:sshd 是否需要任何特殊的配置參數,或者這與 sshd 無關?
這絕對不是大多數人的解決方案,但無論如何我都會在這裡發布,也許它可以在未來幫助其他人。
問題是在 Linux 機器上,環回介面預設是關閉的。我仍然不確定為什麼。我通過嘗試 SSH 到 localhost 來解決這個問題,但失敗了。Ping 也沒有用。啟動環回後,一切正常:
ifconfig lo up
(您的環回介面的名稱可能不同,這取決於您的作業系統)
我只能假設在幕後,本地 SSH 連接正在從轉發隧道到本地 SSH 守護程序。