#ssh #known-hosts
Вопрос:
Я пытаюсь лучше понять, как ssh
выполняется аутентификация хоста. Я подключаюсь по ssh с macbook pro (OSX 10.14.6) к нескольким серверам CentOS 8.1. На удаленных серверах CentOS есть несколько файлов /etc/ssh/
, которые используются для аутентификации на основе хоста (например ssh_host_ed25519_key.pub
, ssh_host_dsa_key.pub
, ssh_host_rsa_key.pub
).
Если я посмотрю на локальный компьютер моего macbook ~/.ssh/known_hosts
, я увижу записи ssh-rsa
, которые используют соответствующие /etc/ssh/ssh_host_rsa_key.pub
. Я также вижу записи, для ecdsa-sha2-nistp256
которых соответствуют /etc/ssh/ssh_host_ecdsa_key.pub
.
Вопрос :
- Когда я
ssh
захожу на свой удаленный сервер, есть ли способ заставить меняssh
использовать определенный алгоритм для аутентификации хоста или это то, что мне придется изменить вручнуюknown_hosts
? Например, заставить его использоватьssh_host_ecdsa_key.pub
вместоssh_host_rsa_key.pub
. - Как
ssh
по умолчанию решить, какой алгоритм использовать для аутентификации хоста?
Ответ №1:
Вы можете использовать -o
флаг для указания параметров SSH. Один из этих вариантов HostKeyAlgorithms
-это то, что будет контролировать, какие алгоритмы предлагает ваш клиент, см.: https://man.openbsd.org/ssh.
Если вы запустите ssh с -vv
флагом, вы сможете увидеть предложение, сделанное вашим клиентом. Затем сервер выбирает первый алгоритм, используемый клиентом, который он поддерживает. Я бы предположил, что разные поддерживают разные алгоритмы.