Как работает аутентификация на основе SFTP-ключа? Разница между ключами SSH и SFTP
Недавно я где-то прочитал, что:
Ключи SSH предназначены для шифрования, в то время как ключи SFTP предназначены для аутентификации.
Рассмотрим, у нас есть клиентская машина C
и SFTP-сервер S
. Для установления SSH-соединения (с использованием открытых/закрытых ключей) клиент создает пару ключей PUc и PRc. Открытый ключ PUc добавляется в файл authorized_keys
на сервере S, и клиент C использует свой закрытый ключ PRc для установите соединение.
Тем не менее, я читал, что для SFTP пара ключей создается на сервере для пользователя, а закрытый ключ предоставляется клиенту для проверки подлинности SFTP-соединения. То есть сервер S создает PUs и PRs, а закрытый ключ PRs передается клиенту C для аутентификации его SFTP-соединения. Правильно ли это понимание?
Если да, я понимаю, что настройка SSH-соединения происходит через 3 этапы:
- Проверка сервера клиентом (проверка ключа хоста).
- Генерация ключа сеанса для шифрования всей связи.
- Аутентификация клиента.
Как клиент аутентифицирует свой сеанс SFTP (с помощью закрытого ключа, который он получил перед передачей с сервера) на шаге 3?