Как я могу автоматически запустить SSH -D туннель при входе в систему для SOCKS прокси?

9

Я знаю, что если я хочу запустить туннель SSH

ssh -d 9000 user@userserver

Это одно решение для динамического туннеля, который должен быть открыт на порту 9000 для пользователя с именем «user» на хосте «userserver»

Однако, как я могу автоматизировать этот процесс в Ubuntu, чтобы мне не приходилось открывать терминал каждый раз, когда я вхожу в систему и запускаю туннель? Я хочу быть SSH, как только я войду в систему.

Я знаю, что мог бы создать bash-файл, но разве мне не нужно было бы хранить пароль пользователя моего сервера в незашифрованном виде, как мне будет предложено после первой команды?

dalanmiller
источник
3
вы можете настроить ssh-ключи вместо использования пароля (см. pkeck.myweb.uga.edu/ssh ), но независимо от ваших настроек вы будете подвергать риску безопасность, если автоматизируете вход в систему ...
LassePoulsen
Не совсем о вашем вопросе, но я рекомендую вам попробовать использовать sshuttleдля маршрутизации вашего интернета через SSH. Это не решает проблемы входа без пароля.
Oxwivi
Если вы настроили SSH без пароля, как я ответил, sshuttleтакже может быть sshuttleзапущен автоматически (обратите внимание, для запуска требуются права администратора).
Oxwivi

Ответы:

9
  1. Настройте SSH-вход без пароля согласно этому ответу :

    • ssh-keygen (вам будет предложено ввести пароль, оставьте его пустым)

    • ssh-copy-id user@userserver (введите свой пароль для входа в SSH в последний раз)

  2. Добавить запись запуска для SSH:

введите описание изображения здесь

введите описание изображения здесь

Oxwivi
источник
@ Стефано, спасибо! Половина заслуг принадлежит Ринзвинду и Марко, которые в первую очередь рассказали мне о SSH без пароля!
Oxwivi
1

Как насчет использования настройки ssh-ключа, как предложила Source Lab, но настройте свой ключ с парольной фразой и убедитесь, что ssh-agent работает на вашем компьютере, поэтому его нужно вводить только один раз за сеанс входа в систему.

Есть несколько преимуществ, делающих это таким образом: - Вы можете получить автоматический вход без пароля (кроме первой загрузки / входа в систему) всякий раз, когда вы вводите команду ssh - У вашего ключа есть пароль, поэтому он безопаснее - Использование открытых / закрытых ключей очень стандарт и будет поддерживаться большинством установок SSH Server

Чтобы настроить аутентификацию по ключу 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

Затем добавьте его в качестве программы запуска (Система -> Настройки -> Запуск приложений), все равно должно работать!

kwiksand
источник
Есть ли способ сделать это через раздел сетевых прокси в настройках Ubuntu? Существует опция для проверки пользователя, и вы можете предварительно ввести свое имя пользователя и пароль? На случай, если мои настройки когда-нибудь изменятся, мне не нужно было бы заходить и редактировать файл.
dalanmiller
Боюсь, это не сработает, даже с autossh.
скерит
-1
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
user189643
источник
Пожалуйста, имейте в виду, что настройка ключа ssh посвящена. Слепое принятие всех запросов без чтения того, что делается, может поставить под угрозу вашу службу / систему.
Брайам