У вас есть отдельно стоящий сервер и вы заходите на него через ssh большое количество раз в день и каждый раз вводите пароль, который состоит больше 10 символов?
Здесь вы можете узнать как устранить эту проблему.
При использовании метода идентификации Identity/Pubkey исключается использования статических паролей. Чтобы каждый раз не набирать пароли, которые можно перехватить с помощью “keylogger’а”, вы будете хранить на диске несколько ключей, которые и будут использоваться для проверки подлинности.
Вот некоторые из положительных моментов этого типа аутентификации:
Для генерации ключей вам необходимо воспользоваться программой ssh-keygen.
localhost$ ssh-keygen -t rsa
Опцией -t rsa мы указали тип создаваемых ключей (возможны варианты ключей — rsa1, rsa или dsa)
Все вышеуказанные манипуляции делаются на локальной машине, теперь надо настроить удаленную (сервер куда вы будете заходить).
Ключи есть, теперь необходимо разрешить данный тип аутентификации на сервере SSH. Сначала определим тип аутентификации — Pubkey или Identity, установив следующие настройки в sshd_config:
# Should we allow Identity (SSH version 1) authentication? RSAAuthentication yes # Should we allow Pubkey (SSH version 2) authentication? PubkeyAuthentication yes # Where do we look for authorized public keys? # If it doesn't start with a slash, then it is # relative to the user's home directory AuthorizedKeysFile .ssh/authorized_keys
Приведенные выше значения разрешают аутентификацию Identity/Pubkey для протокола SSH версии 1 и 2, и проверяют наличие публичных ключей в файле $HOME/.ssh/authorized_keys.
Необходимо проверить наличие этих строк в файле конфигурации /etc/ssh/sshd_config, если таковых нету — добавить и перезапустить сервис.
Первый вариант
ssh-copy-id
У вас должна быть программа ssh-copy-id и с ее помощью
ssh-copy-id -i ~/.ssh/id_rsa.pub youruser@remote.server.host
«ручной» вариант
cat ~/.ssh/id_rsa.pub | ssh -l user@remote.server.host ‘mkdir -p
.ssh;touch .ssh/authorized_keys; cat >>.ssh/authorized_keys;chmod 700
~/.ssh;chmod 600 ~/.ssh/authorized_keys’
или такой
localhost$ scp ~/.ssh/id_rsa.pub youruser@remote.server.host
localhost$ ssh youruser@remote.server.host
remote.server.host$ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 700 ~/.ssh)
remote.server.host$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
remote.server.host$ chmod 600 ~/.ssh/authorized_keys
Все этапы завершены, всё настроили — пора пробовать
ssh youruser@remote.server.host