Команды SSH и SCP не выполняются после успешной аутентификации ключа SSH с сообщением об ошибке: Win32 error 1114 - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь автоматизировать передачу файлов из Linux на Odroid XU4 (Linux) на мой компьютер с Windows.

Я могу аутентифицироваться с помощью ключа SSH на моем компьютере с Windows и даже получить доступ к терминалу MobaXterm с моего Odroid, но когда я пытаюсь отправить команду ssh или scp, такую ​​как ssh User@IP [command]или scp [file] User@IP:[destination] Я получаю следующую ошибку:

1 [main] sshd 11572 C: \ WINDOWS \ SysWOW64 \ bsh \ usr \ sbin \ sshd.exe: *** фатальная ошибка - невозможно загрузить C: \ WINDOWS \ system32 \ user32.dll, ошибка Win32 1114


Я не понимаю, откуда это происходит по следующим причинам:

  • Это работало до Я пытаюсь управлять SSH-соединением и командами с Python.
  • Работает сRaspbian на моем Raspberry Pi, даже после того, как я начал получать ошибку.Я подумал, что, возможно, я случайно что-то изменил в своей конфигурации cygwin, но тот факт, что я все еще могу подключаться и отправлять команды через RP, говорит об обратном.

Я все еще новичок в создании протоколов связи SSH / SCP, может быть, я изменил «канал», который используется для доступа к удаленному хосту?Кто-нибудь сталкивался и преодолел эту проблему?


Единственная документация, которую я нашел по этой ошибке, связана с cygwin, но им более 5 лет и они используют Windows Server 2003, 1 , 2 ,Некоторые предлагают добавить разрешения после this , но они у меня уже есть, поэтому у меня заканчиваются идеи о том, как их отладить.


Я присоединяюсь к своей конфигурации и полному обратному вызовуэтой ошибки под.Как и то, что я попробовал на Python, прежде чем все сломалось.Дайте мне знать, если вам нужна дополнительная информация.


Мои настройки:


Локальный хост: Odroid XU4 - Linux

    • Ubuntu LTS 18.04
    • Архитектура: arm7l
    • OpenSSH_7.6p1
    • Python 3.6

    Удаленный хост: Windows 10 - 64 бита

    • MobaXterm
    • Cygwin

    Python


    На питоне я использовал библиотеки Paramiko и scp .Я попробовал следующие команды:

    from paramiko import SSHClient 
    from scp import SCPClient
    
    ssh=SSHClient()
    ssh.load_system_host_keys()
    ssh.connect(hostname, username=USER)
    

    Это заставило меня успешно подключиться.Затем я попробовал два способа отправки файла через paramiko и scp.Оттуда я начал получать ошибку, и теперь, даже когда я использую терминал для отправки команд, я получаю ошибку выше.

    os.system('scp dir/test.png USER@IP:"/cygdrive/c/Users/USER/Box/"')
    

    и с scp:

    def progress(filename, size, sent):
        sys.stdout.write("%s\'s progress: %.2f%%   \r" % (filename, float(sent)/float(size)*100))
    
    scp = SCPClient(ssh.get_transport(), progress=progress)
    scp.put(local_file, remote_destination)
    

    Полный обратный вызов


    odroid @ odroid: ~ $ scp -v dir / test.png
    USER @ IP: "/ cygdrive / c /Users / USER / Box / "
    Выполнение: программа / usr / bin / ssh IP-адрес хоста, пользователь USER, команда scp -v -t / cygdrive / c / Users / USER / Box /
    OpenSSH_7.6p1 Ubuntu-4ubuntu0.1, OpenSSL 1.0.2n 7 декабря 2017 г.
    debug1: чтение данных конфигурации / etc / ssh / ssh_config
    debug1: / etc / ssh / ssh_config строка 19: применение параметров для *
    debug1: подключение кIP [IP] порт 22.
    debug1: соединение установлено.
    debug1: идентификационный файл /home/odroid/.ssh/id_rsa тип 0
    debug1: key_load_public: нет такого файла или каталога
    debug1: идентификационный файл /home/odroid/.ssh/id_rsa-cert тип -1
    debug1: key_load_public: нет такого файла или каталога
    debug1: идентификационный файл /home/odroid/.ssh/id_dsa тип -1
    debug1: key_load_public: такого файла или каталога нет
    debug1: identityфайл /home/odroid/.ssh/id_dsa-cert тип -1
    debug1: key_load_public: нет такого файла или каталога
    debug1: идентификационный файл /home/odroid/.ssh/id_ecdsa тип -1
    debug1: key_load_public: нет такого файла или каталога
    debug1: идентификационный файл /home/odroid/.ssh/id_ecdsa-cert тип -1
    debug1: key_load_public: такого файла или каталога нет
    debug1: файл идентификации /home/odroid/.ssh/id_ed25519 тип -1
    debug1: key_load_public: нет такого файла или каталога
    debug1: файл идентификации /home/odroid/.ssh/id_ed25519-cert тип -1
    debug1: строка локальной версии SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1
    debug1: версия удаленного протокола 2.0, версия удаленного программного обеспечения OpenSSH_7.1
    debug1: совпадение: OpenSSH_7.1 pat OpenSSH * compat 0x04000000
    debug1: аутентификация по IP: 22 как «USER»
    debug1: отправлено SSH2_MSG_KEXINIT
    debug1: получено SSH2_MSG_KEXINIT
    debug1: kex: алгоритм: кривой25519-sha256@libssh.org
    debug1: debug: алгоритм ключа хоста: ecdsa-sha2-nistp256
    debug1: kex: сервер-> клиентский шифр: chacha20-poly1305@openssh.com MAC: сжатие: нет
    debug1: kex: клиент-> серверный шифр: chacha20-poly1305@openssh.com MAC: сжатие: нет
    отладка 1: ожидается SSH2_MSG_KEX_ECDH_REPLY
    debug1: ключ хоста сервера: ecdsa-sha2-nistp256
    SHA256: ksdJSQNSèsQ987S8SKHGqJ87Bjj
    debug1: IP-адрес хоста известен и соответствует ключу хоста ECDSA.
    debug1: обнаружен ключ в /home/odroid/.ssh/known_hosts:1
    debug1: повторный ключ после 134217728 блоков
    debug1: SSH2_MSG_NEWKEYS отправлено
    debug1: ожидается SSH2_MSG_NEWKEYS
    debug * SSH: debug1: SSD debug1: SSD debug1: SSG debug1150 * debug1: повторный ключ после 134217728 блоков
    debug1: получено SSH2_MSG_SERVICE_ACCEPT
    debug1: аутентификации, которые могут продолжаться: publickey, пароль, клавиатура-интерактивная
    debug1: следующий метод аутентификации: publickey debug1: предложение открытого ключа: RSA
    SHA256: JBSQqshdfqf87kjj / fqf87kjjG2EGCSQqshhDsd /home/odroid/.ssh/id_rsa
    debug1: сервер принимает ключ: pkalg ssh-rsa blen 279
    debug1: проверка подлинности успешно завершилась (общедоступная проверка подлинности): успешно завершилась проверка подлинности: успешно завершилась проверка подлинности: успешно завершилась проверка подлинности: проверка подлинности успешно завершилась: проверка подлинности успешно завершилась: 1154 * SHA256: JBSQqshdfqf87kjj / fqf87kjjG2EGCSQqshhDsd /home/odroid/.ssh/id_rsa *1155* debug1: сервер принимает ключ: pkalg ssh-rsa blen 279 *1156* debug1 *IP]: 22).
    debug1: канал 0: новый [клиент-сеанс]
    debug1: запрос no-more-sessions@openssh.com
    debug1: вход в интерактивный сеанс.
    debug1: залог: сеть
    debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
    debug1: среда отправки.
    debug1: Отправка команды: scp -v -t / cygdrive / c / Users / USER /
    1 [main] sshd 13224 C: \ WINDOWS \ SysWOW64 \ bsh \ usr \ sbin \ sshd.exe: *** фатальная ошибка - невозможно загрузить C: \ WINDOWS \ system32 \ user32.dll, ошибка Win32 1114 debug1: client_input_channel_req: канал 0 rtype ответ на сигнал выхода 0
    debug1: client_input_channel_req: канал 0 rtype eow@openssh.com ответ 0
    debug1: канал 0: свободный: клиент-сессия, nchannels 1
    debug1: очистка fd 0 O_NONBLOCK
    debug1: очистка fd 1 O_NONBLOCK
    Передано: отправлено 2748, получено 2932 байта, за 0,3 секунды
    байт в секунду: отправлено 9984,6, получено 10653,1
    debug1: состояние выхода -1
    потеря соединения

    1 Ответ

    0 голосов
    / 06 декабря 2018

    Неустранимая ошибка не в cygwin sshd, а в W10, как указано в сообщении об ошибке:

    C: \ WINDOWS \ SysWOW64 \ bsh \ usr \ sbin \ sshd.exe

    Cygwin one устанавливается под

    $ cygpath -w /usr/sbin/sshd.exe
    C:\cygwin64\usr\sbin\sshd.exe
    

    Чтобы использовать Cgwin sshd, вам необходимо удалить или отключить W10 в качестве службы и включить Cygwin.

    https://cygwin.com/ml/cygwin/2018-06/msg00276.html

    Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
    ...