Очень часто для работы необходима ssh авторизация без пароля, к примеру, когда используете capifony для развертывания проекта на рабочем сервере.
На рабочей машине в командной строке выполняете команду $ ssh-keygen
и далее следуете инструкциям.
Нам необходимо будет скопировать файл ~/.ssh/id_rsa.pub
на сервер. Его имя на сервере должно быть ~/.ssh/authorized_keys
. Также надо будет изменить его правда доступа на $ chmod 600 ~/.ssh/authorized_keys
.
Правим файл $ sudo vim /etc/ssh/sshd_config
для разрешения авторизации по ключу, у нас должны данные пункты быть раскомментированы:
PubkeyAuthentication yes PermitRootLogin no AuthorizedKeysFile .ssh/authorized_keys
В данном случае опция PermitRootLogin no
для запрета авторизации по ssh пользователю root.
Перезапускаем сервис $ sudo killall -HUP /usr/sbin/sshd
Если у вас несколько ключей или необходимо авторизироваться под разными пользователями на разные сервера, то на локальной машине можно создать файл $ vim ~/.ssh/config
с содержимым:
Host domain.com HostName domain.com User andrey IdentityFile ~/.ssh/id_rsa
В таком случае на хостинг domain.com
будет использоваться файл IdentityFile ~/.ssh/id_rsa
Вместо заключения
На CVS серверах, таких как github или bitbucket, можно настроить доступ рабочего сервера к репозиторию, для этого есть опция “Deployment keys”. Мы просто генерируем на сервере публичный ключ и добавляем его. Также необходимо сам сервер CVS добавить в ~/.ssh/known_hosts
, для этого можно клонировать любой репозиторий.
Настроить авторизацию по файлу достаточно просто и удобно использовать в дальнейшем.