Как настроить аутентификацию с открытым ключом?

Как настроить аутентификацию с открытым ключом для SSH?

Ответ 1

Если у вас установлен SSH, вы сможете запустить.

ssh-keygen

Затем выполните шаги, у вас будет два файла: id_rsa и id_rsa.pub (первый - это ваш закрытый ключ, второй - ваш открытый ключ - тот, который вы копируете на удаленные компьютеры)

Затем подключитесь к удаленному компьютеру, к которому вы хотите войти, в файл ~/.ssh/authorized_keys добавьте содержимое вашего файла id_rsa.pub.

Oh и chmod 600 все файлы id_rsa* (как локальные, так и удаленные), поэтому другие пользователи не могут их прочитать:

chmod 600 ~/.ssh/id_rsa*

Аналогично, убедитесь, что удаленный файл ~/.ssh/authorized_keys имеет значение chmod 600:

chmod 600 ~/.ssh/authorized_keys

Затем, когда вы выполняете ssh remote.machine, он должен запросить у вас пароль ключа, а не удаленный компьютер.


Чтобы сделать его более удобным, вы можете использовать ssh-agent для хранения расшифрованных ключей в памяти - это означает, что вам не нужно вводить пароль на клавиатуру каждый раз. Чтобы запустить агент, вы запускаете (включая цитаты с обратным тиком, которые определяют результат команды ssh-agent)

`ssh-agent`

В некоторых дистрибутивах ssh-agent запускается автоматически. Если вы запустите echo $SSH_AUTH_SOCK, и он показывает путь (возможно, в /tmp/ ), который он уже настроил, поэтому вы можете пропустить предыдущую команду.

Затем, чтобы добавить свой ключ, вы делаете

ssh-add ~/.ssh/id_rsa

и введите свою кодовую фразу. Он сохраняется до его удаления (с помощью команды ssh-add -D, которая удаляет все ключи из агента)

Ответ 2

Для окон это является хорошим введением и руководством

Вот некоторые хорошие ssh-агенты для систем, отличных от linux.