Ssh

如何解決錯誤:“ssh_exchange_identification:遠端主機關閉連接”

  • October 19, 2016

錯誤:

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 應用了找到的第一個指令。

引用自:https://serverfault.com/questions/475159