Я установил туннель через autossh.
Это работает:
autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 autossh@myhost.com
Я хотел бы запустить autossh в фоновом режиме. Кажется, легко с помощью -f
опции.
Это не работает, однако:
autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 autossh@myhost.com
Autossh работает в фоновом режиме нормально, но соединение ssh, похоже, каждый раз прерывается. В / var / syslog я вижу несколько случаев:
autossh[3420]: ssh exited with error status 255; restarting ssh
Что я делаю неправильно? Дикая догадка - это как-то связано с аутентификацией через файл ключа. Как я могу отладить это (добавление -v к параметрам ssh, похоже, нигде не регистрируется).
Изменить: я получил некоторые логи SSH с помощью опции -y
/usr/bin/ssh[3484]: debug1: Next authentication method: publickey
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_rsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_dsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_ecdsa
/usr/bin/ssh[3484]: debug1: No more authentication methods to try.
/usr/bin/ssh[3484]: fatal: Permission denied (publickey).
autossh[3469]: ssh exited with error status 255; restarting ssh
Поэтому кажется, что autossh не принимает мой файл идентификатора ( -i myIdFile
) при использовании опции -f. Это почему?
(Автосш 1.4с на Распиан)
ssh
ssh-tunnel
henning77
источник
источник
Ответы:
Кажется, что когда autossh переходит в фоновый режим (опция -f), он меняет рабочий каталог, то есть относительные пути больше не работают. Или более конкретно: введя абсолютный путь к вашему файлу id, вы, вероятно, добьетесь успеха.
Я заново создал сценарий, создав ключ без пароля в месте, отличном от заданного по умолчанию:
Я просто дважды нажимаю клавишу ввода, чтобы создать ключ, который не защищен паролем.
Я скопировал новый ключ на свой сервер (который позволяет аутентификацию по паролю в настоящее время):
Сначала я подтвердил, что ключ работает с обычным ssh, а затем использовал autossh, как вы:
Они оба работали нормально, поэтому я воссоздал проблему, с которой вы столкнулись:
Это не сработало, и следующее было написано
/var/log/syslog
:Изменив путь ключевого файла на абсолютный, он сработал:
Нет ошибок в
/var/log/syslog
.источник
Не уверен, что происходит с ключом -f, но вы также можете ничего этого не делать:
источник
nohup
также работал для работыautossh
подrunit
в Alpine LinuxДобавьте следующие параметры в SSH, чтобы обойти «Вы уверены, что хотите продолжить подключение (да / нет)?»
Последняя команда будет в следующем формате:
источник
StrictHostKeyChecking=no
если вы не подключаетесь к хорошо известной эфемерной игрушке - и вы решаете быть ленивым.