Ssh
如何解決錯誤:“ssh_exchange_identification:遠端主機關閉連接”
錯誤:
ssh_exchange_identification:連接被遠端主機關閉
有很多建議的解決方案,但似乎沒有一個能解決我的問題。
這就是我想要完成的:
我有一個伺服器(10.0.0.5)SSH。該伺服器具有以下使用者及其外殼:
passport , shell=/bin/false user1, shell=git-shell user2, shell=git-shell me, shell=bash
該
sshd_config
文件末尾有以下條目:AllowTcpForwarding no Match User passport,user1,user2 AllowTcpForwarding true PermitOpen 10.0.0.5:8080 PermitOpen 10.0.0.5:22
我還啟用了公鑰身份驗證。目標是禁用來自 SSH 的所有 tcp 轉發,只允許上述使用者在兩個埠上進行轉發:
- SSH - a web server
在我的
/etc/hosts.allow
和.deny
文件中沒有條目。我
authorized_keys file
在/home/passport/.ssh/authorized_keys
.在 Windows 機器上,嘗試 SSH:
ssh passport@10.0.0.5 -N -L 22:10.0.0.5:22 -L 8080:10.0.0.5:8080
這工作正常,當“我嘗試衝浪
http://127.0.0.1:8080
”時,這意味著我的埠轉發工作正常。現在,我想嘗試通過該隧道進行 SSH 連接並使用“user1”:
ssh -N user1@127.0.0.1
此刻,我得到:
ssh_exchange_identification:連接被遠端主機關閉
然而,如果我只是直接從我的 Windows 機器上 SSH,我會成功:
ssh -N user1@10.0.0.5
我不知道為什麼它不起作用。
我檢查
/var/log/auth.log
並觀察:Feb 4 10:28:23 myhost sshd[2097]: debug1: server_input_channel_open: ctype direct-tcpip rchan 257 win 16384 max 16384 Feb 4 10:28:23 myhost sshd[2097]: debug1: server_request_direct_tcpip: originator 0.0.0.0 port 0, target 10.0.0.5 port 22 Feb 4 10:28:23 myhost sshd[2097]: Received request to connect to host 10.0.0.5 port 22, but the request was denied. Feb 4 10:28:23 myhost sshd[2097]: debug1: server_input_channel_open: failure direct-tcpip
我嘗試刷新 iptables
-F
並嘗試重新啟動 sshd,但仍然出現連接關閉錯誤。
- 為什麼我不能通過隧道 ssh?
- 我創建“護照”使用者的原因是允許使用者遠端登錄我的網路。他們將能夠使用網路伺服器。
現在,如果他們想使用 GIT,他們將使用以下範例:
git clone ssh://user1@127.0.0.1/repos/repo.git
我正在使用 Linux 2.6.32 和 OpenSSH 5.5p1 執行 Debian 6
請就如何解決我的問題提出建議。我嘗試了與我的問題相同標題的問題列出的所有解決方案,但無濟於事。
您只能指定一個
PermitOpen
指令;如果您想允許多個轉發,請在同一行指定它們,用空格分隔:PermitOpen 10.0.0.5:8080 10.0.0.5:22
似乎 OpenSSH 應用了找到的第一個指令。