SSH пользуются многие и возможно то что я здесь напишу это прописные истины но все же…
Для начала расскажу про подключение с использованием ключей RSA.
Для чего это нужно? Нужно для облегчения работы — чтобы не вводить каждый раз свой пароль. К тому же знание этих параметров может облегчить работу с GIT. Так например github поддерживает работу через SSH, но при этом требуется использование ключей для авторизации.
Для начала надо создать пару ключей. Лучше всего воспользоваться утилитой ssh-keygen. Запустив ее и ответив на пару вопросов в результате получаем два ключа. Один приватный, и второй публичный (с суффиксом .pub). Файл можно переименовать — главное помнить что есть что.
При создании ключей ssh-keygen просит ввести пароль. ЭТо пароль на «расшифровку» ключа. Его можно не задавать, просто нажать ентер, и тогда при подключении никаких паролей запрашиваться не будет. Для дополнительной безопастности можно задать пароль. Но надо помнить что этот пароль не восстанавливается. В случае его потери — выход только один — создавать новую пару ключей.
В качестве совета можно порекомендовать использоваться для каждого сервера свою уникальную пару ключей. Конечно можно запутаться, но безопастность повышается.
Теперь надо добавить публичный ключ на сервер, к которому собираемся подключаться.Публичный ключ добавляется как отдельная строка в файл .ssh/authorized_keys в профиле пользователя на сервере. Для этого можно зайти на сервер по SSH с логином и паролем или по ФТП. Если такой папки или файла не существует, то их надо создать
cd ~ mkdir .ssh cd .ssh touch authorized_keys
Для этого файл .pub можно скопировать на сервер и там сделать слияние файлов.
cat mykey.pub >>authorized_keys
Но я предпочитаю copy&paste методологию.
Подготовка сделана, осталось теперь начать это использовать. А использовать это проще простого.
ssh -i pathtokey user@host.com
В результате происходит подключение к серверу по SSH без запроса пароля. Даже если поменять пароль у пользователя, то подключение будет по прежнему возможно.
Возможно что при первой попытке SSH ругнется на файл ключа. Что-то там про права доступа. Исправляется это простановкой правильных прав. А именно
chmod 600 pathtokey
На сервере в файле ключей может быть несколько записей. Это позволяет подключаться к серверу с различных компьютеров, планшетов или смартфонов.
Основной минус такого подхода в том что ключи могу «уйти» вместе с компьютером или другим устройством и тогда получаем ситуацию «заходите гости дорогие».
Еще один минус в усложнении использования SSH для обычного подключения или же для rsync или scp. Правда это неудобство надуманно — и проблема решается очень просто. Но об этом как-нибудь в другой раз.