Проверка отпечатков пальцев SSH для сервера Amazon AWS EC2 с ECDSA?
Когда я создаю новый сервер Amazon EC2, я подключаюсь к нему с помощью ssh
, как обычно.
Я вижу типичное предупреждение:
$ ssh myserver
The authenticity of host 'ec2-12-34-567-890.compute-1.amazonaws.com (12.34.567.890)' can't be established.
ECDSA key fingerprint is 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07.
Are you sure you want to continue connecting (yes/no)?
Как проверить отпечаток пальца перед входом в систему?
В идеале ответ основан на чем-то помимо оригинального журнала консоли создания-потому что журнал может быть удален после перезагрузки системы, или во время большого сценария установки системы, который генерирует много выходных данных, или соединение с более старой системой с ключами, которые не отслеживались во время создания.
2 ответа:
Как следует из ответа @joelparkerhenderson, вы можете собрать отпечаток ключа хоста из начального журнала запуска сервера, когда ключи хоста генерируются (скриптом
cloud-init
):Если вам не удается собрать ключи таким образом, вы можете получить их, подключившись к целевому экземпляру из другого доверенного экземпляра в частной сети Amazon, таким образом защищая себя от атак человека в середине.
Когда на доверенном экземпляре (тот, для которого вы знаете отпечатки пальцев) терминал, вы можете использовать следующие команды для сбора отпечатков пальцев (
172.33.31.199
является частным IP):Если у вас нет другого экземпляра, чьи отпечатки пальцев вы знаете, создайте новый временный экземпляр, просто с целью сбора ключей. Сначала найдите ключи для нового временного экземпляра, используя его начальный журнал запуска. Подключитесь к временному экземпляру из общедоступной сети. Затем соберите ключи целевого экземпляра, подключившись к нему из временного экземпляра, через частный Amazon сеть. После этого вы можете отбросить временный экземпляр.$ ssh-keyscan 172.33.31.199 > ec2key $ ssh-keygen -l -f ec2key 2048 02:fc:a5:ff:97:dd:41:63:bb:88:8b:29:4e:75:23:ed 172.33.31.199 (RSA) 256 ea:bc:4d:5f:ae:00:48:75:45:ba:97:43:fe:e1:a3:e9 172.33.31.199 (ECDSA)
Я подготовилруководство для безопасного подключения к экземпляру EC2 с помощью WinSCP .
Вот два решения, которые работали на меня во время создания системы EC2.
Решение 1. Используйте панель мониторинга Amazon EC2
- перейти к https://console.aws.amazon.com
- нажмите ссылку "EC2".
- нажмите "экземпляры" в левом столбце
- выберите нужное имя экземпляра
- Нажмите кнопку выбора "действия" и выберите " получить системный журнал "(он же"вывод консоли")
- в выводе консоли вы должны увидеть клавиши создается
Решение 2. Используйте командную строку AWS EC2
Можно использовать команду
aws
или командуec2-get-console-output
. Как можно скачать с Amazon.Чтобы использовать свой ЕС2 закрытый ключ PEM-файл, сертификат PEM-файл, регионе, пример:
ec2-get-console-output \ --private-key pk-ABCDEF1234567890.pem \ --cert cert-ABCDEF1234567890.pem \ --region us-east-1c \ i-e706689a
Выходные данные показывают отпечатки ключей хоста ssh следующим образом:
ec2: -----BEGIN SSH HOST KEY FINGERPRINTS----- ec2: 1024 e0:79:1e:ba:2e:3c:71:87:2c:f5:62:2b:0d:1b:6d:7b root@ip-10-243-118-182 (DSA) ec2: 256 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07 root@ip-10-243-118-182 (ECDSA) ec2: 2048 ce:ec:3b:d3:34:3f:f3:45:76:81:9e:76:7a:d9:f5:e8 root@ip-10-243-118-182 (RSA) ec2: -----END SSH HOST KEY FINGERPRINTS-----
Инструмент
aws
работает аналогично.Примечание: эти решения работают только во время создания, или когда вы можете получить журналы консоли. Более широкое решение, которое работает в любое время, смотрите в ответе Мартина.