Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Автоматизация подключения через SSH  (Прочитано 7142 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Relaxxx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Автоматизация подключения через SSH
« : 24 Сентября 2009, 12:48:56 »
Здравствуйте.
вот пытаюсь настроить автоматическое соединение по ssh, чтобы не вводить каждый раз пароли, появилось два вопроса:
1.
У меня настроен доступ к удаленной машине через ssh используя ключи доступа. Каждый раз когда подключаюсь мне приходится вводить контрольную фразу моего приватного ключа
ssh -p29 user@example.com
после каждого перезапуска терминала, мне нужно заново вводить этот пароль. Замучался :) Пошел спросить у гугла. Он мне сказал что есть такие вещи как ssh-agent и keychain. Если руками вписать:
eval `ssh-agent`
ssh-add ~/.ssh/example_rsa
и в ~/.bashrc прописать чтобы при старте находил агента и брал ключ с кеша
/usr/bin/keychain ~/.ssh/example_rsa
[[ -f $HOME/.keychain/$HOSTNAME-sh ]] && source $HOME/.keychain/$HOSTNAME-sh
то все работает.

но мне нужно чтобы при старте сессии гнома у меня один раз грузился ssh-agent и добавлялся ключ спрашивая пароль, а потом уже при старте баша keychaine уже брал его с памяти. Собственно куда мне вписывать eval `ssh-agent` ssh-add ~/.ssh/example_rsa чтобы они выполнялись при входе в сессию и куда вводить пароль нужно будет при добавлении ключа (ssh-add)? Слышал о gnome-ssh-askpass но так и не понял как им пользоваться. Поделитесь опытом настройки ssh для удобной работы.

2. И еще что я делаю не так: если я прямо в баше пишу
eval `ssh-agent`
ssh-add ~/.ssh/example_rsa
то я могу подключиться к серверу по ssh, а вот если создаю скрипт conn_example
#!/bin/bash
eval `ssh-agent` > /dev/null
ssh-add /home/me/.ssh/example_rsa

и запускаю его
sh conn_example. То ничего не работает. Почему?

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #1 : 24 Сентября 2009, 13:17:42 »
Что-то ерунда какая-то. Все чрезмерно усложнено.

У меня никаких проблем никогда не было.
Делал все по рекомендации из чьего-то блога (уже не помню, где и когда я это видел).
Сгенерировал два ключа, один скопировал на другой компьютер, другой оставил у себя  - и, о чудо! - команда ssh перестала спрашивать пароль.

Ссылку, повторюсь, потерял. Помню, блог был на русском языке, там была целая подборка статей про ssh, и уже давно не обновляется.
Может быть, этот: http://alexey.sveshnikov.ru/blog/
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Relaxxx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #2 : 24 Сентября 2009, 13:23:59 »
wl
да нет, такой вариант не проходит. я при генерации ключа указываю пароль. поэтому когда подключаюсь мне нужно его вводить.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #3 : 24 Сентября 2009, 13:28:29 »
Так и я указывал...

Вот аналогичное руководство, прямо в начале страницы.
Я делал, как там написано. Никаких паролей у меня не спрашивают.


Пользователь решил продолжить мысль 24 Сентября 2009, 11:31:11:
А. Вот. http://www.igosha.com/archives/41 Все то же самое еще раз.

Цитировать
Проверка авторизации по SSH ключу

Пробуем зайти по SSH на сервер. Если для ключа был задан пароль, он будет запрошен, иначе вы сразу же подключитесь к удаленному серверу.
Значит, не надо для ключа пароль задавать.

А если уж так неймется задать пароль, в первой ссылке, что на английском, приведена команда с ssh-agent.
Надо ее воткнуть в ~/.bashrc или в ~/.profile - какой-то из этих файлов исполняется всякий раз при запуске bash.
« Последнее редактирование: 24 Сентября 2009, 13:34:02 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Relaxxx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #4 : 24 Сентября 2009, 13:49:57 »
wl
да, пароль указать неймется)
я то могу в bashrc указать запуск ssh-agent и добавление ключа, но тогда при каждом запуске терминала мне придется вводить этот ключ. Что есть неудобно. Как я понял можно как-то в начале сессии гнома запустить ssh-agent и добавить мой ключ, и в гуи гнома должно выскочить окно(gnome-ssh-askpass) спрашивающее пароль к этому ключу. я один раз его ввел и все. а в башрс я прописал мой keychaine который уже и будет находить бой запущенный ssh-agent и брать с памяти пароль. вот такой вариант мне нравится, но я не могу его реализовать. не знаю куда писать  загрузку ssh-agent и подключения ключа.

и может объясните, почему эти две команды которые я выполняю в баше работают
eval `ssh-agent`
ssh-add ~/.ssh/example_rsa
а если я их запихиваю в скрипт и его запускаю, то так ничего не работает

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #5 : 24 Сентября 2009, 14:06:21 »
Гномовская программа, хранящая в памяти пароли и ключи, называется seahorse
http://live.gnome.org/Seahorse
Покопайте ее.

и может объясните, почему эти две команды которые я выполняю в баше работают
eval `ssh-agent`
ssh-add ~/.ssh/example_rsa
а если я их запихиваю в скрипт и его запускаю, то так ничего не работает

Ответ был в той же ссылке на английском. Запускается новый процесс bash, в первом случае Вы с ним же дальше и работаете (чтобы закрыть терминальное окно, надо нажать Ctrl-D дважды), а во втором он просто завершается, и все.

Чтобы со скриптом работало, надо его запускать с точкой и пробелом перед именем:
. ./script.sh
« Последнее редактирование: 24 Сентября 2009, 14:11:35 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Relaxxx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #6 : 24 Сентября 2009, 14:53:39 »
спасибо! буду разбираться. у меня тут походу еще вопрос возник, может подскажите, чтобы я темы не плодил:
я хочу чтобы при старте сессии гнома у меня выполнялось пару команд, куда мне их записать??

и еще вопрос.
у меня допустим есть файл start.sh c содержимым
/usr/bin/ssh-agent -k
если я этот файл запущу в терминале ./start.sh
то он отработает нормально, а если на панели гнопа создам кнопку и в поле команда укажу путь к этому start.sh, то ничего не работает, почему?

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #7 : 24 Сентября 2009, 15:49:07 »
спасибо! буду разбираться. у меня тут походу еще вопрос возник, может подскажите, чтобы я темы не плодил:
я хочу чтобы при старте сессии гнома у меня выполнялось пару команд, куда мне их записать??

http://lmgtfy.com/?q=gnome+autostart

и еще вопрос.
у меня допустим есть файл start.sh c содержимым
/usr/bin/ssh-agent -k
если я этот файл запущу в терминале ./start.sh
то он отработает нормально, а если на панели гнопа создам кнопку и в поле команда укажу путь к этому start.sh, то ничего не работает, почему?
Все по тому же, запускается отдельный процесс bash, для которого все работает, но про который остальная система ничего не знает.
(почитал маны про ключ -k)
Цитировать
     -k      Kill the current agent (given by the SSH_AGENT_PID environment variable).

Эта переменная во всей системе не определена - только в одном каком-то процессе bash.
« Последнее редактирование: 24 Сентября 2009, 15:55:43 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Relaxxx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Автоматизация подключения через SSH
« Ответ #8 : 24 Сентября 2009, 16:25:18 »
Цитировать
     -k      Kill the current agent (given by the SSH_AGENT_PID environment variable).
мда...тогда я уже вообще потерялся.
устал...
нашел вот еще одну статью, как раз то что мне нужно, но для suse http://linsovet.com/node/395. но немогу ее адаптировать для ubuntu.
у меня нет cp /etc/X11/xdm/sys.xsession и ~/.xinitrc.template

 

Страница сгенерирована за 0.017 секунд. Запросов: 20.