2016-02-27 1 views
0

Мне удалось создать обратный 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).

+0

Кстати, по другим вопросам, я пришел сюда: возможно, это не самый подходящий сайт SE для такого вопроса? Если это не так, где я должен спрашивать об этом? (это не характерно для Малины, это не для ServerFault - или это ?, ...) –

+0

SuperUser - это место. – Jakuje

+0

@Jajuke: хорошо спасибо, сделано! –

ответ

0

autossh с -N и ни -L, ни -R, ни любая другая экспедиция установит постоянное ssh соединение, которое на самом деле не делает очень много. вам нужно дать autossh те же (или сопоставимые) аргументы.

Смежные вопросы