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





Для Windows это - хорошее введение и руководство
Вот несколько хороших ssh-агентов для систем, отличных от linux.
Если у вас установлен SSH, вы сможете запустить ..
ssh-keygen
Затем выполните шаги, у вас будет два файла, id_rsa и id_rsa.pub (первый - ваш закрытый ключ, второй - ваш открытый ключ - тот, который вы копируете на удаленные машины).
Затем подключитесь к удаленному компьютеру, на котором вы хотите войти, в файл ~/.ssh/authorized_keys добавьте содержимое вашего файла id_rsa.pub.
Да, и 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, которая удаляет все ключи из агента)
Могу ли я войти в систему с неизвестного компьютера, используя закрытый ключ, сгенерированный для известного / настроенного клиента для связи с сервером? Я имею в виду, переносится ли этот закрытый ключ и может ли он использоваться для аутентификации на сервере с других машин в случае крайней необходимости?
@ user01 Да, вы можете скопировать закрытый ключ в несколько систем и получить доступ к другому серверу, имеющему соответствующий открытый ключ.
@Charlie Gorichanaz: Может быть и наоборот, например, могу ли я сгенерировать пару ключей на сервере и использовать сгенерированный открытый ключ на всех других машинах, которые я хочу подключиться к этому серверу?
Загрузка открытого ключа на удаленную машину также может выполняться ssh-copy-id [-i identity] [user@]host, выполняемым на локальной машине.
@ user01, если вы сгенерируете пару ключей на сервере и скопируете открытый ключ на другие машины, вы сможете войти только в с сервера на эти машины,, а не наоборот.
Если вам нужно создать папку .ssh, не устанавливайте ее на 600, как я, иначе у вас будут плохие времена. Вместо этого установите его на 700. :-)