Я пытаюсь автоматизировать передачу файлов из 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 бита
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
потеря соединения