Я знаю, что если я хочу запустить туннель SSH
ssh -d 9000 user@userserver
Это одно решение для динамического туннеля, который должен быть открыт на порту 9000 для пользователя с именем «user» на хосте «userserver»
Однако, как я могу автоматизировать этот процесс в Ubuntu, чтобы мне не приходилось открывать терминал каждый раз, когда я вхожу в систему и запускаю туннель? Я хочу быть SSH в тот момент, когда я вхожу в систему.
Я знаю, что могу создать файл bash, но мне не нужно будет хранить пароль пользователя моего сервера в виде открытого текста, поскольку мне будет предложено ввести его после начальная команда?
Как насчет использования настройки ssh-ключа, как предложила Source Lab, но настройте свой ключ с парольной фразой и убедитесь, что ssh-agent запущен на вашем компьютере, поэтому его нужно вводить только один раз за сеанс входа в систему. [ 115]
Есть несколько преимуществ, делающих это таким образом: - Вы можете получить автоматический вход без пароля (кроме первой загрузки / входа в систему) всякий раз, когда вы вводите команду ssh - У вашего ключа есть пароль, поэтому он безопаснее - Использование pub / private ключи очень стандартны и будут поддерживаться большинством установок SSH-сервера
Чтобы настроить аутентификацию ключа SSH:
Чтобы использовать ssh-agent / keychain (для кэширования парольной фразы в течение сеанса входа в систему):
Что касается автоматизации создания туннеля при запуске, одна идея может создать быстрый сценарий оболочки, который запускает туннель:
~$ sudo cat <<EOF >> /usr/local/bin/start_tunnel.sh
ssh-add # ensure key is added to agent
ssh -D 9000 user@userserver # substitute real server in here (of course)
EOF
~$ chmod +x /usr/local/bin/start_tunnel.sh
Затем добавьте его в качестве запускаемой программы (Система -> Настройки -> Запускаемые приложения), все равно должно работать!
Я написал небольшой сценарий для этого: https://github.com/PHLAK/Soxy
Настройте SSH-вход без пароля согласно этому ответу :
ssh-keygen
(вам будет предложено ввести пароль , оставьте это поле пустым)
ssh-copy-id user@userserver
(введите свой пароль для входа в SSH в последний раз)
Добавить запись запуска для SSH:
sudo ssh-keygen #type Enter everywhere
sudo cat /home/root/.ssh/ id_dsa.pub >> .ssh/authorized_keys
/etc/rc.local добавить строку:
echo "ssh socks 192.168.0.1:8000" ; sudo ssh -fND 192.168.0.1:8000 localhost