Мне удалось создать обратный SSH-туннель между малиной Pi 2 и моим сервером (сервер с статическим IP-адресом), и он отлично работает. Учетная запись пользователя, которую я использую на сервере, называется «ksproxy» (это не действительно «прокси», но что угодно).Как получить постоянный обратный SSH-туннель, используя autossh?
Теперь я пытаюсь сделать autossh
(из пакета Debian/Raspbian autossh
), чтобы работать, но я не преуспеваю. Я могу быть рядом.
(я изменил реальный IP здесь, в этом вопросе 37.xxx.yyy.zzz
не размещать фактический IP сервера)
Вот что работает отлично: (нет autossh)
На ИРЦ:
[email protected]:~ $ ssh -N -R 20000:localhost:22 [email protected]
на сервере (тот со статическим IP):
[email protected]:~$ ssh [email protected] -t -p 20000
[email protected]'s password:
[email protected]:~ $
Итак, все работает нормально: я вводил пароль, и я получаю терминал/подсказку.
Я могу даже получить доступ к Raspberry Pi с моего рабочего стола (на первом переходе через сервер), выполнив:
ssh -t [email protected] "ssh [email protected] -p 20000"
[email protected] password:
[email protected]'s password:
...
[email protected]:~
Это первый запросит пароль сервера, то для пароля Пи и все в порядке.
Пока все хорошо.
Теперь я попробовать то же самое, но на этот раз с autossh:
[email protected]:~ $ autossh -M 20000 -N -i /home/rspi/.ssh/id_rsa [email protected]
[email protected]:~$ ssh [email protected] -p 20000
Этот «работает», но это просто застрял там, ничего не делая.
Я пытался «-vvv» выводить команды ssh, но он просто показывает, что ничего не происходит.
Если я попробовать другой порт, он не:
[email protected]:~$ ssh [email protected] -p 1234
ssh: connect to host localhost port 1234: Connection refused
Если я пытаюсь правильный порт (20000), но на этот раз с -t
пар, одно и то же: она «работает», но я не получаю нет терминала/подсказки.
Вот -vvv
OUTPUT
[email protected]:~$ ssh -vvv [email protected] -t -p 20000
OpenSSH_6.7p1 Debian-5+deb8u1, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 20000.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/ksproxy/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ksproxy/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
...
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u1
Это не запрашивая пароль, он не показывает любой терминал/приглашение.
Что я не понимаю здесь или делаю неправильно?
Обратите внимание, что я не думаю, что это проблема с брандмауэром, поскольку метод «non autossh» работает нормально (но тогда я не получаю автоматическую функцию «всегда вверх»/снова подключаться). Я действительно хотел бы сделать работу autossh (я знаю, что я мог бы найти обходной путь, например, какой-то crontab автоматически перезапустил мой ручной SSH-туннель, но это, вероятно, было бы более хрупким, чем работа autossh).
Кстати, по другим вопросам, я пришел сюда: возможно, это не самый подходящий сайт SE для такого вопроса? Если это не так, где я должен спрашивать об этом? (это не характерно для Малины, это не для ServerFault - или это ?, ...) –
SuperUser - это место. – Jakuje
@Jajuke: хорошо спасибо, сделано! –