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


9

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

ssh -d 9000 user@userserver

Це одне рішення для відкриття динамічного тунелю на порту 9000 для користувача з ім'ям "user" на хості "userserver"

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

Я знаю, що я міг би створити файл bash, але чи не доведеться я зберігати пароль свого сервера в простому тексті, як мені буде запропоновано його після початкової команди?


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:

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

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


@Stefano, дякую! Половина кредиту припадає на Rinzwind та Марко, які в першу чергу мене просвітили про SSH без пароля!
Oxwivi

1

Як щодо використання налаштування ssh-ключа, як запропонувала Source Lab, але налаштуйте свій ключ із фразою пропуску та переконайтеся, що ssh-агент працює на вашій машині, тому його потрібно вводити лише один раз за сеанс входу.

У цьому є кілька переваг: - Ви можете отримувати автоматизований вхід без пароля (крім першого завантаження / входу) кожного разу, коли ви видаєте команду ssh. стандартний і буде підтримуватися більшістю установок сервера 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

Потім додайте його як програму запуску (Система -> Налаштування -> Запуск програми), все одно має працювати!


Чи потрібно це зробити через розділ мережевих проксі налаштувань Ubuntu? Є можливість підтвердження користувача, і ви можете попередньо ввести своє ім’я користувача та пароль? На всякий випадок, якщо мої налаштування колись зміниться, я не хотів би входити і редагувати файл.
dalanmiller

Я боюся, що це не спрацює, навіть з аутош.
skerit


-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

Зверніть увагу, що налаштування ключа ssh присвячено. Сліпо прийняття всіх підказок, не читаючи того, що робиться, може поставити під загрозу вашу послугу / систему.
Брайам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.