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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
60
0
97 808
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для 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, которая удаляет все ключи из агента)

Если вам нужно создать папку .ssh, не устанавливайте ее на 600, как я, иначе у вас будут плохие времена. Вместо этого установите его на 700. :-)

Ray Hulha 21.02.2014 18:04

Могу ли я войти в систему с неизвестного компьютера, используя закрытый ключ, сгенерированный для известного / настроенного клиента для связи с сервером? Я имею в виду, переносится ли этот закрытый ключ и может ли он использоваться для аутентификации на сервере с других машин в случае крайней необходимости?

Rajat Gupta 28.02.2014 12:33

@ user01 Да, вы можете скопировать закрытый ключ в несколько систем и получить доступ к другому серверу, имеющему соответствующий открытый ключ.

Charlie Gorichanaz 28.02.2014 13:14

@Charlie Gorichanaz: Может быть и наоборот, например, могу ли я сгенерировать пару ключей на сервере и использовать сгенерированный открытый ключ на всех других машинах, которые я хочу подключиться к этому серверу?

Rajat Gupta 28.02.2014 13:46

Загрузка открытого ключа на удаленную машину также может выполняться ssh-copy-id [-i identity] [user@]host, выполняемым на локальной машине.

Jan Blechta 18.05.2014 18:52

@ user01, если вы сгенерируете пару ключей на сервере и скопируете открытый ключ на другие машины, вы сможете войти только в с сервера на эти машины,, а не наоборот.

törzsmókus 04.12.2014 18:02

Другие вопросы по теме