Есть две машины Linux, скрипты А и В. работает на необходимость , чтобы иметь возможность SSH в B. Таким образом, генерирует открытый ключ (вероятно ssh-keygen
-порождённых id_rsa.pub
), а затем использует соответствующий закрытый ключ (опять же , возможно id_rsa
) , чтобы сделать это соединение SSH.
Если что-то, что я сказал выше, неверно или введено в заблуждение, пожалуйста, начните исправлять меня!
Предполагая, что я более или менее на цели:
- Как A «дает» B свой открытый ключ (
id_rsa.pub
)? Это должен быть ручной процесс, или это может быть автоматизировано? Если руководство, каков процесс? Если это автоматизировано, какая команда? Когда B «получает» этот открытый ключ, куда он попадает или хранится? - При инициализации SSH-соединения с B, как A «использует» свой закрытый ключ (
id_rsa
) как часть этого соединения?
linux
ssh
public-key-encryption
user3178622
источник
источник
Ответы:
ssh-keygen
генерирует как открытый, так и закрытый ключи, которые изначально находятся только локально. Передача открытого ключа другому хосту - это то, что пользователь должен будет сделать вручную, отправив его кому-то, ответственному за сервер B, или, если у вас есть учетная запись с паролем, вы можете войти в систему и поместить ее туда самостоятельно. Чтобы разрешить вход без пароля на сервер B, вам необходимо добавить свой открытый ключ в файл ~ / .ssh / authorized_keys на сервере B (один открытый ключ на строку, в этом файле может быть любое количество ключей). Существует команда linuxssh-copy-id
, которая скопирует для вас идентификатор и поместит его в файл.По умолчанию ssh будет использовать файл ~ / .ssh / id_XXX в качестве вашего закрытого ключа. XXX может быть rsa, dsa или любым протоколом, для которого был сгенерирован ключ. IIRC, dsa старая и не должна использоваться. Если вы хотите использовать другой закрытый ключ, вы можете указать его в своей команде ssh, используя
-i
. Если используемый закрытый ключ совпадает с открытым ключом на удаленном компьютере (в файле author_keys для учетной записи пользователя, в которую вы входите), вам не нужно будет вводить пароль.источник
ssh-keygen
, вы упоминаете, что эти два ключа «находятся только локально»? Где?!? Как, в какой папке я могу перейти и увидетьid_rsa.pub
иid_rsa
? (2) Я думал, что этоssh-add
была команда для добавления открытого ключаauthorized_keys
, нет? Какая разница междуssh-copy-id
аssh-add
? Еще раз спасибо!~/.ssh/id_rsa
'2', ssh-add - не для добавления в author_keys, а для добавления в цепочку для ключей .. Я не использовал ssh хотя ssh-add позволяет вам не вводить ключевую фразу каждый раз, когда вы используете клавишу, для которой требуется ключевая фраза. Так что, если ваши ssh-ключи не требуют ключевой фразы, тогда, я думаю, нет никакой причины использовать ssh-add, и я думаю, вам все равно нужно будет использовать ssh-copy-id или выполнить ручное копирование открытого ключа в авторизованныеДа
но B необходимо, чтобы открытый ключ A был указан в файле author_keys B, чтобы A мог подключиться к B
также вы можете удалить id_rsa.pub и ssh в B, и он все равно будет работать, потому что открытый ключ генерируется заново при каждом подключении ssh и не сохраняется ни в одном id_rsa.pub.
инструкция - что-то вроде
из-
или даже больше вручную, чтобы сломать команду
A $
cat id_rsa.pub | ssh user@host 'cat>~/a.a'
затем на B убедитесь, что ~ / .ssh существует, затем выполните
cat a.a >> ~/.ssh/authorized_keys
и вы можете просмотреть и авторизовать ключи B до и после, чтобы убедиться, что ключ указан в списке.
Или вы можете отправить id_rsa.pub по электронной почте на учетную запись электронной почты, затем из B, B можете проверить электронную почту и добавить содержимое id_rsa.pub в свой файл author_keys.
автоматически
Команда ssh-copy-id
Вы должны быть в состоянии SSH, поэтому вам нужен доступ с паролем
Вместо того, чтобы делать ssh user @ host, вы делаете ssh-copy-id user @ host, и вам предлагается ввести пароль, вы вводите его, вы находитесь, он скопирует открытый ключ. И в следующий раз, когда вы сделаете ssh user @ host, он будет использовать ключ.
B's ~ / .ssh / authorized_keys
ну, я не знаю много об этом, вне головы, но все, что зашифровано одним ключом, может быть расшифровано другим ключом, и идентификация себя немного отличается от отправки данных ... и может быть что-то о временном ключе тоже.
источник