При входе по SSH проверяют обе стороны: клиент — сервер, сервер — пользователя. Ошибка одной проверки не похожа на ошибку другой.
SSH даёт командную строку на другой машине. Сначала клиент убеждается, что говорит с тем самым сервером: у сервера есть ключ сервера, а клиент хранит его копию в known_hosts. Потом сервер решает, пускать ли пользователя.
Пользователь входит по паре ключей. Закрытый ключ лежит у клиента (~/.ssh/id_ed25519) и никуда не передаётся. Открытый лежит на сервере, в файле authorized_keys в домашнем каталоге учётной записи.
| Не прошла проверка | Что напечатает ssh |
|---|---|
| клиент не узнал ключ сервера | Host key verification failed. |
| сервер не принял ключ пользователя | Permission denied (publickey,…) |
В начале урока не прошла вторая проверка: клиент сервер узнал, а сервер отказал deploy.
ssh напечатала Host key verification failed. Какая проверка не прошла?
-
Пароль спрашивают после проверки ключа сервера. Здесь
sshостановилась раньше, наknown_hosts. -
Права
authorized_keysпроверяет сервер, когда решает о пользователе, и отказ выглядит какPermission denied. -
До проверки пользователя дело не дошло. Отказ сервера
sshпечатает какPermission denied.
Host key verification failed пишет клиент: ключ, который предъявил сервер, не совпал с записью в known_hosts или записи нет. Сервер до проверки пользователя ещё не дошёл.
Главное в шаге
-
Клиент проверяет сервер по
known_hosts, сервер проверяет пользователя поauthorized_keys. -
Host key verification failed— отказ клиента,Permission denied— отказ сервера.