
我已經在 Windows 上使用 SSH 隧道一段時間了(使用 Putty)。
在 Windows 上用 putty 總是沒問題,但在 mac 或 cygwin 上,有時會提示警告訊息:
open failed: administratively prohibited: open failed
答案1
我相信您已經在伺服器上停用了 TCP 轉送。在您的伺服器中, /etc/ssh/sshd_config
請確保以下行不存在或被註釋,否則對其進行註釋。
AllowTcpForwarding no
答案2
還有更廣泛的討論Unix StackExchange 上的 SSH 隧道出現此錯誤。簡而言之,這是一個非特定錯誤;有許多可能性值得探索。
答案3
如果 sshd 配置已經具有啟用連接埠轉送的所有選項,但您仍然遇到此問題,請檢查/var/log/secure
類似以下內容 -sshd: error: connect_to XXX: unknown host (Name or service not known)
如果 ssh 主機無法解析您想要透過隧道連接到的主機,它將傳回無法開啟通道的一般錯誤。
仔細檢查 ssh 伺服器上的隧道主機名稱或 DNS 解析。
答案4
僅供後代使用,即使它對您沒有特別的用處
這些錯誤透過 stderr 發送到您的控制台,因此如果您只想忽略它們,添加2>/dev/null
到呼叫末尾ssh
將完美地工作。例如:
ssh -C -D 3210 example@connexion 2>/dev/null
如果代理隧道實際上工作正常,但您只是不想看到錯誤,這非常有用。
就我而言;我隧道連接的機器不是我的,所以我無法修改sshd_config
(這不是你的問題),而且我也對 shell 使用相同的連接。在開啟的 vim 視窗期間將這些錯誤訊息寫入我的控制台會使顯示變得非常煩人。