1

Odroid XU4 (Linux) 上の Linux から Windows 上の私のコンピューターへのファイル転送を自動化しようとしています。

Windows マシンへの SSH キーで認証でき、Odroid から MobaXterm ターミナルにアクセスすることもできますが、ssh または scp コマンドを送信しようとすると、ssh User@IP [command]またはscp [file] User@IP:[destination]次のエラーが発生します。

1 [メイン] sshd 11572 C:\WINDOWS\SysWOW64\bsh\usr\sbin\sshd.exe: *** 致命的なエラー - C:\WINDOWS\system32\user32.dll を読み込めません、Win32 エラー 1114


次の理由により、これがどこから来ているのかわかりません。

  • Python で SSH 接続とコマンドを管理しようとする前は、うまくいきました。
  • エラーが発生し始めた後でも、Raspberry Pi のRaspbian で動作します。cygwin 構成で何かを誤って変更したのではないかと思いましたが、RP を介して接続してコマンドを送信できるという事実は、そうではありません。

私はまだ SSH/SCP 通信プロトコルを作成するのにまったく慣れていません。リモート ホストへのアクセスに使用される「チャネル」を変更した可能性がありますか? 誰かがこの問題に遭遇して克服しましたか?


このバグについて私が見つけた唯一のドキュメントは cygwin に関連していますが、それらはすべて 5 年以上前のものであり、Windows Server 2003、1、2 を使用します。これに続いてパーミッションを追加することを提案する人もいますが、私はすでにそれらを持っているので、これをデバッグする方法についてのアイデアが不足しています。


構成と、このエラーの完全なコールバックを下に結合しています。すべてが壊れる前にPythonで試したことと同様に。さらに情報が必要な場合はお知らせください。


私のセットアップ:


ローカル ホスト: Odroid XU4 - Linux

    • Ubuntu LTS 18.04
    • アーキテクチャ: arm7l
    • OpenSSH_7.6p1
    • パイソン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 を介してファイルを送信する 2 つの方法を試しました。そこからエラーが発生し始めましたが、ターミナルを使用してコマンドを送信しても、上記のエラーが発生します。

    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 2017 年 12 月 7 日
    debug1: 構成データの読み取り /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config 行 19 : オプションを適用中 *
    debug1: IP [IP] ポート 22に接続中。
    debug1: 接続が確立されました。
    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ディレクトリ
    debug1: ID ファイル /home/odroid/.ssh/id_dsa タイプ -1
    debug1: key_load_public: そのようなファイルまたはディレクトリはありません
    debug1: ID ファイル /home/odroid/.ssh/id_dsa-cert タイプ -1
    debug1: key_load_public: そのようなファイルはありませんまたはディレクトリ
    debug1: ID ファイル /home/odroid/.ssh/id_ecdsa タイプ -1
    debug1: key_load_public: そのようなファイルまたはディレクトリはありません
    debug1: ID ファイル /home/odroid/.ssh/id_ecdsa-cert タイプ -1
    debug1: key_load_public: いいえそのようなファイルまたはディレクトリdebug1: ID
    ファイル /home/odroid/.ssh/id_ed25519 タイプ -1
    debug1: key_load_public: そのようなファイルまたはディレクトリはありません

    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 as 'USER'
    debug1: SSH2_MSG_KEXINIT 送信
    debug1: SSH2_MSG_KEXINIT 受信
    debug1: kex: アルゴリズム: curve25519-sha256@libssh.org
    debug1: kex: ホスト キー アルゴリズム: ecdsa-sha2-nistp256
    debug1: kex: サーバー-> クライアント暗号: chacha20-poly1305 @openssh.com MAC: 圧縮: なし
    debug1: kex: client->server 暗号: chacha20-poly1305@openssh.com MAC: 圧縮: なし
    debug1: SSH2_MSG_KEX_ECDH_REPLY を期待
    debug1: サーバー ホスト キー: ecdsa-sha2-nistp256
    SHA256: ksdJSQNSèsQ987S8SKHGSJBSQqshdfqf87kjj
    debug1: ホスト 'IP' は既知であり、ECDSA ホスト キーと一致します。
    debug1: /home/odroid/.ssh/known_hosts:1 でキーが見つかりました debug1
    : 134217728 ブロック後にキーを再生成します
    debug1: SSH2_MSG_NEWKEYS が送信されました
    debug1: SSH2_MSG_NEWKEYS を期待します
    debug1: SSH2_MSG_NEWKEYS を受信しました
    debug1: 134217728ブロック後にキーを再生成しました debug1: SSH2_MSG_SERVICE_ACCEPT を
    受信しました
    debug1: 続行できる認証: publickey,password,keyboard-interactive
    debug1: 次の認証方式: publickey debug1: 公開鍵の提供: RSA
    SHA256:JBSQqshdfqf87kjj/fqf87kjjG2EGCSQqshhDsd /home/odroid/.ssh/id_rsa
    debug1: サーバーはキーを受け入れます: pkalg ssh-rsa blen 279
    debug1: 認証に成功しました (publickey)。
    IP ([IP]:22) に対して認証されます。
    debug1: チャネル 0: 新しい [client-session]
    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: channel 0 rtype exit-signal reply 0
    debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
    debug1: channel 0: free: client-session, nchannels 1
    debug1: fd 0 クリア O_NONBLOCK
    debug1: fd 1 クリア O_NONBLOCK
    Transferred: sent 2748、受信 2932 バイト、0.3 秒1 秒
    あたりのバイト数: 送信 9984.6、受信 10653.1
    debug1: 終了ステータス -1
    接続が失われました

    4

    1 に答える 1

    0

    致命的なエラーは cygwin sshd によるものではなく、エラー メッセージに記載されている W10 によるものです。

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

    Cygwin は以下にインストールされます。

    $ 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

    于 2018-12-06T18:06:20.373 に答える