Posts tagged ‘публичный ключ’

Доступ к SSH без ввода пароля

Всем привет,
решил написать маленький мануал о том как можно настроить SSH на работу без ввода пароля.
Заранее со всеми согласен с тем что таких статей уже много, но еще одна возможно будет выше в рейтинге GOOGLE и кто-то сможет найти ее быстрее :) .

Я не буду сильно вводить в теорию, а просто обьясню как и что делать, хотя советую все же с теорией ознакомиться (http://www.opennet.ru/docs/RUS/use_ssh/), т.к. это продвинет вас в понимании вопроса :) .

При беспарольном входе по SSH, клиент и сервер оперирует так называемыми ключами, которые разделены на 2е части: публичный и приватный (public and private).
Публичный ключ распространяеться на те сервера, на которые вы хотите заходить.
Приватный ключ храниться только на той машине с которой вы хотите осуществлять вход (этот ключ не должн распростроняться ни в коем случае!!!)

Ну вот с минимумом теории вроде и закончили, приступим к практике…
Для того чтобы начать работу с ключами необходимо для начала их сгенерировать, для этого под пользователем из под которого будет выполняться вход выполняем следующую команду:
$ ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa):

Далее вам будет предложено выбрать путь к файлу в котором будет находиться ваш ключ, лучше всего оставить стандартный(просто нажать Enter).

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Дальше нужно ввести «парольную фразу», вводим какой нибудь текст (это необходимо для более высокой надежности ключа), затем повторяем опрацию ввода фразы.
Все, ключ создан, можно начинать использование.

Если вы использовали стандартный путь для файла с ключем, то в той же папке что и указанный ключ должен лежать файл ~/.ssh/id_rsa.pub – это и есть публичный ключ, открывает его каким нибудь текстобым редактором, и копируем содержимое.

Затем заходим на сервер, на который хотим ходить без пароля, и открываем текстомым редактором файл ~/.ssh/authorized_keys (если его нет, создаем), в этом файле храняться публичные ключи для хостов с которых можно заходить без пароля, добавляем в этот файл содержимое скопированного нами ключа.

Ура, теперь можно пробовать пользоваться, для этого на рабочем компьютере выполняем:

ssh user@server_without_pass

по идее вы должны увидет приветствие удаленного сервера без ввода пароля, однако иногда этого не происходит, в некоторых дистрибутивах требуеться настроить так называемы «параноидальные» настройки на досту к файлам SSH, нужно выполнить на обоих компьютерах

chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/authorized_keys

Вот и все что я хотел сказать по этой тем, если у кого-то есть вопросы или пожелания – прошу оставлять, может я чего и забыл ;) .

P.S.

Через некоторое время обнаружился глюк ;) , если папку ~/.ssh/ создать руками то описанный выше совет не работает. Поэтому удаляем созданную руками папку и заходим на какой-нибудь сервер по SSH(логинится не обязательно), SSH как паинька создаст нужные папки. После этого можно вылолнить вышеописанные действия.