SSH(Openssh)を使用してUbuntuからWindowsにファイルを自動的に一覧表示する

SSH(Openssh)を使用してUbuntuからWindowsにファイルを自動的に一覧表示する

SSHを介してリモートファイルシステムを使用するためにCで自動化APIを作成しています。

ホストコンピュータはUbuntu-Linuxを実行し、ターゲットコンピュータの1つはOpenSSHがインストールされているWindows 7を実行します。

私が経験している特定の機能は、リモートのWindowsシステムにファイルを一覧表示することです。特に名前にスペースが含まれているファイルとフォルダはさらにそうです。例:「プーバ」

私のコマンドの形式は次のとおりです。

sshpass -p [pwd] ssh [account]@[ip_addr] dir PATH

私がするなら:

sshpass -p [pwd] ssh -v [account]@[ip_addr] dir C:\"FOO BAR"

詳細情報を表示(-v)オプションを使用すると、次の応答が表示されます(スニペット)。

debug1: Sending command: dir C:"Foo BAR
  Volume in drive C has no label.
  ...
File Not Found

私がするなら:

sshpass -p [pwd] ssh -v [account]@[ip_addr] dir C:\\\"FOO BAR\"

次を返します。

debug1: Sending command: dir C:\\"FOO BAR"
  Volume in drive C has no labe.
  ...
File Not Found

オートメーションで実行すると、次のものが返されます。

sh: 1: Syntax error: Unterminated quoted string

私のAPIは、間にスペースがないファイル名に適しています。 Windowsシステムにコマンドを送信することに制限があるようです。この問題を解決する方法についてのアイデアはありますか?

ありがとうございます!

11/14アップデート:

返信ありがとうございます。歩行者!私はこのSSHFSについてよく知りません。まず試してみてください。

提供したリンクをたどると、この手順で次のことができます。

sudo sshfs -o allow_other,defer_permissions [email protected]:/ /mnt/droplet

次のエラーが発生します。

fuse: unknown option `defer_permissions`

Googleに連絡した後、次のように変更しました。

sudo sshfs -o allow_other,default_permissions [email protected]:/ /mnt/droplet

そのうち、次のエラーが発生しました。

read: Connection reset by peer

私はこれに従いましたピアが sshfs を使用して接続をリセットするそしてそうでした:

sudo usermod -a -G fuse [my_user_name]

しかし、まだ同じ問題があります。どんなアイデアがありますか?

ベストアンサー1

引用の問題を回避するには、パラメータをbase64に渡してLinuxサーバーからデコードできます。

しかし、SSHFSが存在する場所に独自のAPIを作成するのはなぜですか?サポートが必要な場合は、下記のリンクをご覧ください。

https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh

おすすめ記事