Ошибка:
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
Я также включил аутентификацию с открытым ключом. Цель состоит в том, чтобы отключить всю пересылку tcp из SSH и разрешить только упомянутым выше пользователям пересылку на двух портах:
- SSH
- a web server
В моем /etc/hosts.allow
и .deny
файлов нет записей.
Я настраиваю соответствующий authorized_keys file
(просто ssh-rsa ...) в /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: соединение закрыто удаленным хостом
Принимая во внимание, что если я просто использую SSH прямо со своего компьютера с Windows, мне это удается:
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
Я использую Debian 6 с Linux 2.6.32 и OpenSSH 5.5p1
Посоветуйте, пожалуйста, как решить мою проблему. Я попробовал все решения, перечисленные для вопроса с тем же названием, что и мой вопрос, но безрезультатно.
Вы можете указать только один PermitOpen
директива; если вы хотите разрешить несколько переадресаций, укажите их в одной строке, разделенной пробелом:
PermitOpen 10.0.0.5:8080 10.0.0.5:22
Похоже, что OpenSSH применяет первую найденную директиву.