ssh без пароля

У вас есть отдельно стоящий сервер? Ходите на него через ssh? Пароль в целях безопасности больше 10 символов? В день заходите на сервер n-ное количество раз? Реально задолбало вводить каждый раз пароль на вход? Меня тоже/
А выход как всегда прост до безобразия, потому что все уже придумано до нас.

Ключи SSH. Или метод Identity/Pubkey

При использовании метода идентификации Identity/Pubkey исключается использования статических паролей. Дабы каждый раз не набирать пароли, которые можно перехватить кейлоггером ну или просто подсмотреть, мы будем хранить на диске пару ключей, которые и будут использоваться для проверки подлинности.

Вот некоторые из положительных моментов этого типа аутентификации:

  • Никто не сможет войти на сервер с Вашей учетной записью, так как им необходимо обладать приватным ключом и кодовой фразой.
  • Администратор сервера может вообще убрать пароль учетной записи, дабы исключить его дискредитацию.
  • Вы можете использовать утилиту ssh-agent и он будет предоставлять аутентификационные данные за Вас.
  • Вы можете устанавливать определенные ограничения, например запрещая перенаправление портов, выполнение определенных программ и т.д.

Генерация SSH ключей. Или создание Identity/Pubkey

Для генерации пары ключей нам необходимо воспользоваться утилитой ssh-keygen.

Опцией -t rsa мы указали тип создаваемых ключей (возможны варианты ключей — rsa1, rsa или dsa)

Настройка сервера SSH

Все вышеуказанные манипуляции мы делали на локальной машине, теперь надо поднастроить удаленную (сервер куда мы будем логиниться).
Ключи есть, теперь необходимо разрешить данный тип аутентификации на сервере SSH. Сначала определим тип аутентификации — Pubkey или Identity, установив следующие настройки в sshd_config:

Приведенные выше значения разрешают аутентификацию Identity/Pubkey для протокола SSH версии 1 и 2, и проверяют наличие публичных ключей в файле $HOME/.ssh/authorized_keys.

Необходимо проверить наличие этих строк в файле конфигурации /etc/ssh/sshd_config, если таковых нету — добавить и перезапустить сервис.

Копирование файла с ключом на удалённый хост

Два варианта
ssh-copy-id
Скорей всего у вас должна быть утилитка ssh-copy-id и с ее помощью

 

«ручной» вариант

 

или такой

 

Вроде все сделали, все настроили — пора пробовать

 

Должно пустить без пароля (если только вы не ставили пароль на сам ключ).