Настройка авторизации SSH через ключевую пару.

Столкнулся с необходимостью создания авторизации SSH основанной не на паролях, а на ключевой паре. Сюда выкладываю краткие заметки по процессу настройки(оказалось все довольно просто):

1. генерируем ключевую пару на стороне клиента:

$: ssh-keygen

причем в разных источниках предлагается использовать разные параметры для этой команды. Чаще всего предлагают использовать опцию type( флажок -t ) и туда записывать: rsa, dsa…; плюс есть вариант изменить размерность ключа с помощью флага -b и еще много других вариантов. На сколько я понял: можно использовать команду по умолчанию и не париться.

Мастер генерации ключевой пары еще задаст несколько вопросов, таких как: куда сгенерировать, нужен ли пароль на файл ключей. Тут тоже можно оставлять все по умолчанию.

2. Следующим шагом необходим скопировать наш открытый(public) ключ на сервер, куда мы хотим удаленно подключаться. Это опять же можно сделать простой командой на клиенте:

$: ssh-copy-id serveruser@serverhost

и если все прошло хорошо – выдаст где-то следующее:

Now try logging into the machine, with "ssh 'serveruser@serverhost'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

 

Приятных настроек!

 

P.S.: бывают случаи когда нет встроенной команды ssh-copy-id, тогда немного по другому:

# через scp копируем с клиента
$: scp ~/.ssh/id_rsa.pub serveruser@serverhost:/home/serveruse
# на сервере добавляем в список
$: cat ~/id_rsa.pub >> ~/.ssh/authorized_keys