SSH(Openssh)를 사용하여 Ubuntu에서 Windows로 파일을 자동으로 나열

SSH(Openssh)를 사용하여 Ubuntu에서 Windows로 파일을 자동으로 나열

SSH를 통해 원격 파일 시스템을 사용하기 위해 C로 자동화 API를 작성 중입니다.

호스트 컴퓨터는 Ubuntu-Linux를 실행하고 대상 컴퓨터 중 하나는 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

관련 정보