Я настраиваю сервер для поддержки SSH с аутентификацией ключа хоста, которая в настоящее время обрабатывается старым умирающим сервером. На данный момент я могу успешно соединиться с SSH и взаимодействовать в терминале, как обычно. Однако, если я включаю команду или помещаю SSH в команду RSync, я получаю ошибку "Ошибка проверки ключа хоста".

Итак, эта команда работает:

ssh -o StrictHostKeyChecking=no -i /cygdrive/C/keys/id_rsa user@192.168.0.2

Пока следующего нет:

ssh -o StrictHostKeyChecking=no -T -i /cygdrive/C/keys/id_rsa user@192.168.0.2 ssh 192.168.0.2 mkdir -p /mnt/storage/new_folder

Однако они оба работают при указании на старый сервер, поэтому сами команды должны быть в порядке. Кроме того, если мне удастся не изменять команды, это позволит нам быть обратно совместимыми.

Я включаю настройки sshd_config на новом сервере (которые были настроены для имитации старого сервера) ниже, на случай, если они помогут, единственные элементы здесь - это те, которые не были закомментированы.

HostbasedAuthentication нет
RhostsRSAАутентификация нет
PermitEmptyPasswords нет
ChallengeResponseAuthentication no
UsePAM да
X11 переадресация да
PrintMotd нет
РаспечататьLastLog да
TCPKeepAlive да
AcceptEnv LANG LC_ *
Подсистема sftp /usr /lib /openssh /sftp-server
PubkeyAuthentication да
RSAАутентификация да
LoginGraceTime 2м
PermitRootLogin да
StrictModes да

Новый сервер - Ubuntu 17.10 (будет обновлен до LTS, когда следующий выйдет в ближайшее время). Старый сервер - Debian 6.0.6.

Изменить: Забыл упомянуть, эта ошибка также происходит, когда я использую RSync с '-e'. Однако я обнаружил, что в команде RSync я могу решить эту проблему, используя username@192.168.0.2:/mnt/storage/new_folder в параметре удаленного пути. Если я удалю «username @», то получу ошибку снова. Опять же, сбойная версия отлично работает на старой подаче, но только с новым сервером. Также имейте в виду, что это устаревший код, поэтому, если я смогу заставить старые команды работать как есть, это сэкономит мне кучу времени на загрузку обновлений.

1 ответ1

1

Хорошо, вы сидите на хосте A (не указано), и, когда вы запускаете команду 1:

ssh -o StrictHostKeyChecking=no -i /cygdrive/C/keys/id_rsa user@192.168.0.2

и вы получаете интерактивную оболочку на хосте B (192.168.0.2).  Но когда вы запускаете команду 2:

ssh -o StrictHostKeyChecking=no -T -i /cygdrive/C/keys/id_rsa user@192.168.0.2 ssh 192.168.0.2 mkdir -p /mnt/storage/new_folder

(с хоста A), вы получаете ошибку.

Хорошо, запустите команду 1 с хоста A и получите интерактивную оболочку на хосте B. Теперь на хосте B выполните команду 2b:

ssh 192.168.0.2 mkdir -p /mnt/storage/new_folder

Что просходит?  Если это также не удается, тогда ваша проблема не в том, что «SSH завершается с ошибкой ключа хоста при отправке команды, но работает без таковой», ваша проблема в том, что хост B не может ssh сам по себе - или, более конкретно, этот «пользователь» ”На хосте B не настроен на ssh для хоста B.

И, для полноты, что произойдет, если вы запустите команду 2c:

ssh -o StrictHostKeyChecking=no -T -i /cygdrive/C/keys/id_rsa user@192.168.0.2  mkdir -p /mnt/storage/new_folder

(от хозяина А)?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .