My name is Vasyl Khrystiuk‎ > ‎pub‎ > ‎Linux‎ > ‎

Linux ssh доступ без пароля

Tags: ssh_tag, linux_tag

1) на компе, с которого нужен доступ выполняешь
$ ssh-keygen
    1.1) путь к ключу можно не менять
    1.2) вводишь свой пароль к этому сертификату
2) копируешь публичный ключ на удаленный комп, к которому нужен доступ
$ scp ~/.ssh/id_rsa.pub [user@]hostname_of_server:.ssh/id_rsa.pub
3) заходишь на удаленный комп(к которому нужен доступ) и если файл с сертификатами уже существует, то дописуешь полученный сертификат к остальным уже существующим
$ cat ~/.ssh/id_rsa.pub | ssh hostname_of_server "cat >> .ssh/authorized_keys2"
но это еще нужно проверить точна как нужно делать
а в случае отсутствия такого файла просто переименовуешь id_rsa.pub в authorized_keys2
4) теперь во время подключения тебе нужно будет вводить пароль не пользователя а сертификата
и чтоб этого тоже не делать, нужно "инсталировать ключ" на компъютере, с которого будет выполянться доступ:
$ exec /usr/bin/ssh-agent $SHELL
$ ssh-add                                        # больше тут
Заметьте: You must execute these two commands each time you log in to a virtual console or open a terminal window.
поэтому нужно добавить такой скрипт в свой .bash_profile (или просто .profile в нашей убунте):

## only ask for my SSH key passphrase once!
#use existing ssh-agent if possible
if [ -f ${HOME}/.ssh-agent ]then
   . ${HOME}/.ssh-agent > /dev/null
fi
if [ -z "$SSH_AGENT_PID" -o -z "`/usr/bin/ps -a|/usr/bin/egrep \"^[ ]+$SSH_AGENT_PID\"`" ]then
   /usr/bin/ssh-agent > ${HOME}/.ssh-agent
   . ${HOME}/.ssh-agent > /dev/null
fi
ssh-add ~/.ssh/id_rsa

5) тестируем
devsvr@more:~/.ssh$ scp id_rsa.pub 192.168.56.101:/home/devsvr/id_rsa.pub
id_rsa.pub                                    100%  393     0.4KB/s   00:00
devsvr@more:~/.ssh$
После перезагрузки тоже все работает.

Не забудьте выставить адекватные права на ключи и не желательно ничего не делать от рута - только от пользователя, которому устанавливаете сертификат:
$ chmod 600 ~/.ssh/authorized_keys2

Можно добавить что без дополнительного пароля все проще. Достаточно только файл отправить на удаленный хост и все.
больше тут:

Comments