Да.
Пароль отправляется после того, как зашифрованное соединение установлено, но удаленный сервер получает пароль в виде открытого текста.
Если вы заботитесь об этом, лучшее и простое решение - использовать ключи SSH.
Если у вас есть машины, которые не могут принимать ключи, то одним из решений будет создание инструмента, который надежно хранит ваши пароли, а затем использует их sshpass
для отправки правильного пароля всегда, в зависимости от сервера, к которому вы подключаетесь.
Теперь причина, по которой пароль отправляется в виде открытого текста, состоит в том, что он оставляет все решения по обработке и хранению его на удаленном конце, и клиент может быть совершенно тупым. В течение последних десяти лет в системах Linux и BSD используется несколько различных форматов хеширования (хранения) паролей ( crypt (3) ), ни один из которых не требует поддержки со стороны клиента.
Хотя это отчасти и из-за истории (то есть так было всегда). Существуют лучшие протоколы аутентификации по запросу-ответу, которые можно использовать даже с паролями. Например, SRP , который предоставляет сторонам общий секрет во время аутентификации. Он был реализован для некоторых SSH-серверов, но патч для OpenSSH предназначен для (очень) старой версии.