15.05.2015

SSH без ввода пароля / login without password / SSH ключи

+--[ RSA 2048]-+
|   . ..   .            
|  + o....+          
| o +oo o+ o  
|  ..E..  + .      
|   . .. S +        
|     .   = o        
|      . . o          
|       .            
|                    
+-----------------+

root-srv:~> ssh-keygen -t rsa
(/root/.ssh)
root-srv:~> ssh root@client mkdir -p .ssh
root-srv:~> cat .ssh/id_rsa.pub | ssh root@client 'cat >> .ssh/authorized_keys'
root-srv:~> ssh root@client


==========
1) Cоздаем открытый и закрытый ключ нашей локальной системы:

$ ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa

2) Если в системе есть программа ssh-copy-id, то настраиваем удаленную систему на то, чтобы она авторизовывала SSH по открытому ключу:

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

если нет, то:
копируем открытый ключ на удаленную систему

$ 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)  # создаем директорию и даём права remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys        # добавляем открытый ключ 
remote$ chmod 600 ~/.ssh/authorized_keys                     # делаем правильные права 
remote$ rm ~/id_rsa.pub                                                   # удаляем не нужное