Кто-нибудь может сказать мне, для использования SSH, почему хосту также нужно иметь открытый и закрытый ключ? И как я могу сгенерировать пару открытый / закрытый ключ для себя?
Вам нужен ключ хоста, чтобы вы знали, что вы подключаетесь к нужному серверу, а не к фальшивому.
# private key
openssl genrsa -out privkey.pem 2048
# public key
openssl rsa -in privkey.pem -pubout -out pubkey.pem
Для получения дополнительной информации:
http://www.openssl.org/docs/apps/rsa.html
http://www.openssl.org/docs/HOWTO/keys.txt
Он отличается от одного распределения к другому. В Ubuntu используйте эту команду:
ssh-keygen
Он сгенерирует два ключа: один публичный (тот, которым вы поделитесь с сервером), а другой - частный, и вы никому не будете обмениваться. После того, как открытый ключ скопирован в ~ / .ssh / авторизованный ключ на сервере, вы можете войти без запроса пароля.
Открытый / закрытый ключи похожи на блокировки и ключи: сервер отправляет вам блокировку, но сохраняет ключ, а затем вы блокируете свои сообщения на сервере. Вам также необходимо отправить на сервер блокировку, чтобы вы могли получить эти данные.
Во всяком случае, для генерации ключей вы должны использовать ssh-keygen
. Вам нужны закрытые и открытые ключи, чтобы использовать SSL, систему шифрования, основанную на асимметричных ключах.