У меня настроен вход без ключа на удаленном сервере. Я использую удаленный сервер для туннелирования своих данных. Я хочу, чтобы моя локальная система автоматически загружалась по ssh на удаленный сервер.
Я попробовал решения, предложенные в следующих ссылках, но ни одно из них не помогло мне:
Я сделал то, что был упомянут в тех постах. Команда autossh
должна открыть порт (в моем случае 9090
), чтобы я мог туннелировать свой трафик. После применения каждого из этих методов я перезапустил ПК и после перезагрузки запустил nmap
, чтобы посмотреть, прослушивает ли конкретный порт или нет. К сожалению, в каждом случае порт все еще был закрыт, поэтому мне приходится вручную вводить команду на терминале каждый раз, когда я перезагружаю свой компьютер.
Мне удержали этот небольшой сценарий ~/bin/infinite_ssh
(1):
#! /bin/bash -x
#
while :; do
ssh -R 2222:localhost:22 remoteserver sleep 86400
sleep 10
done
это соединяется с remoteserver
и создает отсталый туннель так, чтобы в удаленном сервере я мог ssh мой рабочий стол при помощи ssh -p 2222 localhost
. Ваше приложение может, очевидно, варьироваться. remoteserver
определяется в ~/ssh/config
так, чтобы Вы могли войти в систему без пароля и имели KeepAlive on
опция.
Затем можно назвать его от /etc/rc.local
с
su -l youruser -c /home/youruser/bin/infinite_ssh &
так, чтобы это запустилось как Ваш пользователь во время начальной загрузки в фоне.
Сноски:
(1) очевидно, необходимо дать разрешение выполнения сценария... chmod a+x ~/bin/infinite_ssh
.