Создание доверенного ssh ключа
Решая различные задачи довольно часто приходиться соединятся по ssh с удаленными серверами. От банального shell доступа, экспорта из svn и sftp до синхронизации данных через rsync (об этом поговорим отдельно). И каждый раз вводить пароль доступа согласитесь – очень не удобно. И что бы облегчить юзверям жизнь была придумана схема rsa-ключей. Создав однажды ключ, и добавив его в доверенные ключи на сервере, мы сможем соединятся с ним(с сервером) не вводя пароль.
Первое что нам понадобится это сгенерировать rsa ключ. Делаем это при помощи команды:
:~$ ssh-keygen
Первое что предложат нам сделать, это выбрать путь для сохранения ключа. По умолчанию это /home/user/.ssh/id_rsa. Это ключ используется при ssh соединении если не указан иной. Но мы можем указать другой, к примеру /home/user/.ssh/id_rsa_myserver.
Далее у нас спросят пароль для доступа к ключу, но мы оставим его пустым (иначе придется вводить его при каждом соединении). Ключ у нас есть!
Теперь нужно его добавить в доверительные на сервере. Выполняем для этого:
:~$ ssh-copy-id -i /home/user/.ssh/id_rsa_myserver [email protected]
и вводим пароль доступа от учетной записи на сервере.
Все готово! Можно заходить на сервер без пароля, достаточно указать при подключении путь до ключа.
:~$ ssh -i /home/user/.ssh/id_rsa_myserver [email protected]
Если был сгенерирован ключ по умолчанию, то вообще ничего указывать не нужно.
Вот полный лог всех действий:
:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/id_rsa_myserver
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa_myserver.
Your public key has been saved in /home/user/.ssh/id_rsa_myserver.pub.
The key fingerprint is:
6f:d2:ab:cc:f4:a8:e4:d9:63:ff:de:35:ad:05:6e:75 user@comp
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| |
| S . E|
| o . oo|
| . o + o.+|
| o *o= . o +.|
| +o*++oo o |
+-----------------+
:~$ ssh-copy-id -i /home/user/.ssh/id_rsa_myserver [email protected]
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
:~$ ssh -i /home/user/.ssh/id_rsa_myserver [email protected]
Last login: Fri May 24 13:05:30 2009 from 192.168.0.1
-bash-3.2$
Спасибо за внятное и толковое описание…