Что означает следующая ошибка Java SFTP?

Что означает следующая ошибка Java SFTP?

Я новичок в области безопасности и хотел бы разобраться в этой ошибке, которую я получаю:

com.jcraft.jsch.JSchException: UnknownHostKey: 127.0.0.1. Отпечаток ключа RSA: a2:39:3f:44:88:e9:1f:d7:d1:71:f4:85:98:fb:90:dc в com.jcraft.jsch.Session.checkHost(Session.java:797) в com.jcraft.jsch.Session.connect(Session.java:342) в com.jcraft.jsch.Session.connect(Session.java:183) в FileTransfer.main(FileTransfer.java:37) Процесс завершен с кодом выхода 0.

что означает `unknownHostKey: 127.0.0.1. Ключ RSA

отпечаток пальца a2:39:3f:44:88:e9:1f:d7:d1:71:f4:85:98:fb:90:dc`

Мне нужно задать файл с именем known_hostsfile, чтобы исправить эту ошибку:

Я попробовал настроить это так:

127.0.0.1 

Но это не работает. Я неправильно понимаю, что подразумевается под known_hostsфайлом?

решение1

За этот ответ стоит поблагодаритьЖильизСайт безопасности StackExchange, как его/еепочтаОбъяснение known_hostsи authorized_keysфайлы — хорошая отправная точка для понимания этого компонента SSH/SFTP.

См. ниже:


Файл known_hostsпозволяет клиенту аутентифицировать сервер, чтобы проверить, что он не подключается к имитатору. Файл authorized_keysпозволяет серверу аутентифицировать пользователя.

Аутентификация сервера

Одно из первых действий, которое происходит при установке SSH-соединения, заключается в том, что сервер отправляет свой открытый ключ клиенту и подтверждает (благодарякриптография с открытым ключом) клиенту, что он знает связанный с ним закрытый ключ. Это аутентифицирует сервер: если эта часть протокола успешна, клиент знает, что сервер является тем, за кого себя выдает.

Клиент может проверить, что сервер известен, а не какой-то мошеннический сервер, пытающийся выдать себя за правильный. SSH предоставляет только простой механизм для проверки легитимности сервера: он запоминает серверы, к которым вы уже подключались, в файле ~/.ssh/known_hostsна клиентской машине (есть также общесистемный файл /etc/ssh/known_hosts). Когда вы подключаетесь к серверу в первый раз, вам нужно проверить другими способами, что открытый ключ, представленный сервером, действительно является открытым ключом сервера, к которому вы хотите подключиться. Если у вас есть открытый ключ сервера, к которому вы собираетесь подключиться, вы можете добавить его ~/.ssh/known_hostsна клиенте вручную.

Кстати, known_hostsможет содержать любой тип открытого ключа, поддерживаемый реализацией SSH, а не только DSA (также RSA и ECDSA).

Аутентификация сервера должна быть выполнена до отправки на него любых конфиденциальных данных. В частности, если аутентификация пользователя включает пароль, пароль не должен быть отправлен на неаутентифицированный сервер.

Аутентификация пользователя

Сервер позволяет удаленному пользователю войти в систему только в том случае, если этот пользователь может доказать, что у него есть право доступа к этой учетной записи. В зависимости от конфигурации сервера и выбора пользователя, пользователь может предоставить одну из нескольких форм учетных данных (список ниже не является исчерпывающим).

  • Пользователь может ввести пароль для учетной записи, в которую он пытается войти; затем сервер проверяет правильность пароля.
  • Пользователь может предоставить открытый ключ и доказать, что он владеет закрытым ключом, связанным с этим открытым ключом. Это точно такой же метод, который используется для аутентификации сервера, но теперь пользователь пытается доказать свою личность, а сервер проверяет ее. Попытка входа принимается, если пользователь доказывает, что он знает закрытый ключ, а открытый ключ находится в списке авторизации учетной записи ( ~/.ssh/authorized_keysна сервере).
  • Другой тип метода предполагает делегирование части работы по аутентификации пользователя клиентской машине. Это происходит в контролируемых средах, таких как предприятия, когда многие машины используют одни и те же учетные записи. Сервер аутентифицирует клиентскую машину тем же механизмом, который используется наоборот, а затем полагается на клиента для аутентификации пользователя.

Связанный контент