Reputation: 11
I am trying to automate file transfers from Linux on an Odroid XU4 (Linux) to my computer on windows.
I can authenticate with an SSH key to my windows machine and even get access to the MobaXterm terminal from my Odroid but when I try to send an ssh or scp command such as ssh User@IP [command]
or scp [file] User@IP:[destination]
I get the following error:
1 [main] sshd 11572 C:\WINDOWS\SysWOW64\bsh\usr\sbin\sshd.exe: *** fatal error - unable to load C:\WINDOWS\system32\user32.dll, Win32 error 1114
I do not understand where this is coming from for the following reasons:
I am still quite new to making SSH/SCP communication protocols, could it be that I modified the "channel" which is used to access the remote host? Has anyone came across and overcame this issue?
The only documentation I found on this bug is related to cygwin but they are all over 5 years old and use Windows Server 2003, 1, 2. Some suggest adding permissions following this, but I already have them so I'm running out of ideas on how to debug this.
I am joining my configuration and the full callback of this error underneath. As well as what I tried on Python before everything breaks. Let me know if you need more information.
My setup:
Local host: Odroid XU4 - Linux
Remote host: Windows 10 - 64 bits
Python
On python, I used the Paramiko and scp libraries. I tried the following commands:
from paramiko import SSHClient
from scp import SCPClient
ssh=SSHClient()
ssh.load_system_host_keys()
ssh.connect(hostname, username=USER)
This made me connect successfully. Then I tried two ways of sending a file over via paramiko and scp. From there I started to get the error and now, even when I use the terminal to send the commands, I get the error above.
os.system('scp dir/test.png USER@IP:"/cygdrive/c/Users/USER/Box/"')
and with 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)
Full Callback
odroid@odroid:~$ scp -v dir/test.png
USER@IP:"/cygdrive/c/Users/USER/Box/"
Executing: program /usr/bin/ssh host IP, user USER, command scp -v -t /cygdrive/c/Users/USER/Box/
OpenSSH_7.6p1 Ubuntu-4ubuntu0.1, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to IP [IP] port 22.
debug1: Connection established.
debug1: identity file /home/odroid/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/odroid/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/odroid/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/odroid/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/odroid/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/odroid/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/odroid/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/odroid/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.1
debug1: match: OpenSSH_7.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to IP:22 as 'USER'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: compression: none
debug1: kex: client->server cipher: [email protected] MAC: compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256
SHA256: ksdJSQNSèsQ987S8SKHGSJBSQqshdfqf87kjj
debug1: Host 'IP' is known and matches the ECDSA host key.
debug1: Found key in /home/odroid/.ssh/known_hosts:1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey debug1: Offering public key: RSA
SHA256:JBSQqshdfqf87kjj/fqf87kjjG2EGCSQqshhDsd /home/odroid/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to IP ([IP]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Sending environment.
debug1: Sending command: scp -v -t /cygdrive/c/Users/USER/
1 [main] sshd 13224 C:\WINDOWS\SysWOW64\bsh\usr\sbin\sshd.exe: *** fatal error - unable to load C:\WINDOWS\system32\user32.dll, Win32 error 1114 debug1: client_input_channel_req: channel 0 rtype exit-signal reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2748, received 2932 bytes, in 0.3 seconds
Bytes per second: sent 9984.6, received 10653.1
debug1: Exit status -1
lost connection
Upvotes: 1
Views: 1620
Reputation: 8466
The fatal error is not due to cygwin sshd but to the W10 one as mentioned in the error message:
C:\WINDOWS\SysWOW64\bsh\usr\sbin\sshd.exe
The Cygwin one is installed under
$ cygpath -w /usr/sbin/sshd.exe
C:\cygwin64\usr\sbin\sshd.exe
To use the Cgwin sshd you need to remove or disable the W10 one as service and enable the Cygwin one.
https://cygwin.com/ml/cygwin/2018-06/msg00276.html
Upvotes: 0