Настройка безпарольной аутентификации по ssh

Изображение пользователя ramok.
Tags: • 

Допустим, вам необходимо настроить безпарольный вход по ssh (scp и sftp тоже) на удаленный сервер remote.org.ua под пользователем user.
Если ваш имя вашего локального пользователя совпадает с удаленным, то user@ везде можно опустить.

1) создаем открытый и закрытый ключ нашей локальной системы
$ ssh-keygen -t rsa
жмем энтер отказываясь от ключевой фразы

2) если в системе есть программа ssh-copy-id, то настраиваем удаленную систему на то, что бы оно авторизировало ssh по открытому ключу
$ ssh-copy-id -i ~/.ssh/id_rsa user@remote.org.ua
переходим к шагу 4)

3) если ssh-copy-id нет то можно сделать это ручками. вот последовательность действий с объяснениями

3.1) копируем открытый ключ на удаленную систему
$ scp ~/.ssh/id_rsa.pub user@remote.org.ua:~ незабываем ввести пароль. ведь мы еще не настроили беспарольный вход Ж:-)

3.2) логинимся на удаленный сервер
$ ssh user@remoute.org.ua

3.3) заносим открытый ключ нашей локальный системы в авторизированые ключи удаленной системы, устанавливаем правильные права и убираем за собой мусор:
remote$ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 711 ~/.ssh) # создадим ~/.ssh директорию если ее нет и дадим нужные права
remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # добавляем открытый ключ к авторизированым ключам
remote$ chmod 600 ~/.ssh/authorized_keys # и делаем правильные права(иначе ssh откажется брать отсюда ключи)
remote$ rm ~/id_rsa.pub # удаляем ненужное

4) проверяем что все работает. запускаем на локальном хосту
$ ssh user@remoute.org.ua
или например
$ scp .zshrc user@remoute.org.ua:~
должно сработать без пароля Ж:-)

ps
тут рассказан один из вариантов такой же настойки между FreeBSD и Windows XP используя putty
http://it-expert.com.ua/weblog/message/251/

у меня не работает

Сделал все как расписано.
На шаге 4 все равно спрашивает пароль.

Пожалуйста, помогите.

попробуйте

попробуйте запусить ssh -vvv ...
он выведет множество дополнительной информации.

но я подозреваю что у вас неправильные права на ~/.ssh
или на файлы в ~/.ssh
ssh отказывается использовать файлы с неправильными правами.
и ключики -vvv должны вам об этом сказать
--
Signature invent in progress 24% ##........

тот же результат

Вот что выдала scp с параметром -v:
====================
[user@localhost] /home/user/> scp -v ~/.ssh/id_dsa.pub dedik.myhost.ru:~
Executing: program /usr/bin/ssh host dedik.myhost.ru, user (unspecified), command scp -v -t ~
OpenSSH_4.5p1 FreeBSD-20061110, OpenSSL 0.9.7e-p1 25 Oct 2004
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to dedik.myhost.ru [xxx.xxx.xxx.xxx] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/identity type -1
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_dsa type 2
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.5p1 FreeBSD-20061110
debug1: match: OpenSSH_4.5p1 FreeBSD-20061110 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.5p1 FreeBSD-20061110
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'dedik.myhost.ru' is known and matches the DSA host key.
debug1: Found key in /home/user/.ssh/known_hosts:1
debug1: ssh_dss_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Offering public key: /home/user/.ssh/id_dsa
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: keyboard-interactive
Password:
================================

Перед этим на localhost сгенерировал ключи. Открытый залил на dedik.myhost.ru в ~/.ssh/authorized_keys
Права выставлены на .ssh - 0711, на authorized_keys - 0600.
Пользователи везде одинаковые user.

А в этом процессе какова роль файла ~/.ssh/known_hosts ? Может в нем дело ?

Пожалуйста, помогите справиться с задачей.

у меня .ssh

у меня .ssh 700
~/.ssh/known_hosts можно вообще стереть, он соаздатся автоматически. там хранится информация о хостах к которым уже конектился.
еще на секретный ключь должен быть 700 ~/.ssh/id_rsa
и 644 на ~/.ssh/id_rsa.pub

и попробуй те запустить с флажками -vvv

--
Signature invent in progress 24% ##........

А еще есть ssh-copy-i

А еще есть ssh-copy-id.

ssh-copy-id -i ~/.id_rsa user@remoute.org.ua

ssh-copy-id -i ~/.ssh/id_rsa

ssh-copy-id -i ~/.ssh/id_rsa user@remoute.org.ua
как я понимаю. вот так вот.. все уже сделано до нас Ж:-)
снкс подправлю

--
Signature invent in progress 22% #.........