У меня есть удаленная машина за брандмауэром, к которой я хочу подключиться через SSH. Насколько я понимаю, это может быть достигнуто с помощью обратного туннеля SSH.
Таким образом, я использую команду:
ssh -N -f -R 0.0.0.0:1234:localhost:22 -i /home/username/.ssh/id_rsa.pub username@remote-server.com
Моя главная проблема заключается в том, что я хочу выполнить эту команду всякий раз, когда компьютер запускается, чтобы компьютер был доступен после перезагрузки.
Я попытался использовать cron, добавив команду crontab моего пользователя и в /etc/cron
. Однако проблема у меня заключается в том, что обе команды запрашивают пароль. Я создал файл the id_rsa.pub
и отправил его на удаленный сервер, но, похоже, он не работает.
Если я вошел в систему (например, через TeamViewer), я могу выполнить команду, и пароль не запрашивается. Если я запускаю команду от имени пользователя root (sudo
), запрашивается (пустой) пароль для файла rsa. Я подозреваю, что моя проблема здесь, то есть, когда cron выполняет команду, ssh запрашивает пароль, и команда зависает.
Я пытался использовать как rsa-файл моего пользователя, так и rsa-файл root, и ни с одним из них мне не удалось подключиться.
После объединения многочисленных источников я создал сервис к автоматическому запуску реверс ssh канал. Конфигурационные файлы и необходимые шаги найдены в этом репозитории
Фиксация проблема SSH
Вы не можете аутентифицировать удаленную машину с открытым ключом, необходимо использовать закрытый ключ, чтобы сделать это. Открытый ключ должен быть в удаленном сервере. Если Вы не уверены, то просто копируют открытый ключ в удаленный сервер как этот:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@remoteserver
и затем выполненный Ваша команда с закрытым ключом:
ssh -N -f -R 0.0.0.0:1234:localhost:22 -i /home/username/.ssh/id_rsa username@remote-server.com
Выполнение этой команды при начальной загрузке
Поскольку Вы уже пошли с crontab, затем выполненным crontab -e
отредактировать Ваш крон. Добавьте следующую строку для выполнения той команды однажды загрузки компьютера.
@reboot ssh -N -f -R 0.0.0.0:1234:localhost:22 -i /home/username/.ssh/id_rsa username@remote-server.com
Просто добавьте sleep 60;
перед Вашей командой ssh:
@reboot sleep 60;ssh -N -f -R 0.0.0.0:1234:localhost:22 -i /home/username/.ssh/id_rsa username@remote-server.com
after reboot your network is still down
mount
команда. Ваш ESP /dev/sda1
, таким образом, you' d тип sudo mount /dev/sda1 /mnt
для монтирования его в /mnt
. Вы можете затем обратно он до другого диска, смонтированного в другом месте с помощью tar
, zip
, cp
, или другие команды. В Windows можно ввести mountvol S: /S
для монтирования ESP как диска S:
. (I' m не положительный, но Вы, возможно, должны были бы использовать окно Administrator Command Prompt для этого.)
– Rod Smith
10 September 2017 в 12:07
Лучшим решением может быть autossh:
"autossh является программой для запуска копии ssh, и контролировать это, перезапуская его по мере необходимости должно он умирать или останавливать проходящее движение".
Как кавычка говорит, это обладает дополнительным преимуществом обеспечения 'всегда на' возможностях.