sshfs
저는 SSH를 통해 일부 Python 프로젝트가 포함된 폴더를 내 ~/
디렉터리 에 설치 하곤 했습니다 .
$ mkdir -p ~/mount/my-projects
$ sshfs [email protected]:/home/user/my-projects ~/mount/my-projects
예상대로 대부분의 명령을 실행할 수 있습니다.
$ ls ~/mount/my-projects
some-python-project
그러나 이것으로 무엇이든 하려고 하면 sudo
허가가 거부되어 실패합니다.
$ sudo ls ~/mount/my-projects
ls: cannot access /home/user/mount/my-projects: Permission denied
제가 실제로 달성하려는 것은 로컬 컴퓨터에서 Python 패키지 설치 스크립트를 테스트하는 것입니다.
$ cd ~/mount/my-projects/some-python-project
$ sudo python setup.py install
답변1
allow_other
sshfs 옵션을 사용해야 한다고 생각합니다 . 이를 위해서는 다음과 같이 sudo를 사용하여 호출해야 합니다.
sudo sshfs -o allow_other user@myserver:/home/user/myprojects ~/mount/myprojects
이 옵션이 없으면 sshfs를 실행하는 사용자만 마운트에 액세스할 수 있습니다. 이것은 퓨즈 한계입니다. 자세한 내용을 보려면 입력하세요 man fuse
.
/etc/fuse.conf
또한 (적어도 Ubuntu에서는) "fuse" 그룹의 구성원이어야 합니다. 그렇지 않으면 위 명령이 "sudo" 없이 실행될 때 액세스할 수 없다는 메시지를 표시합니다.
답변2
sshfs
사용자 모드 프로세스이므로 사용할 필요가 없습니다 sudo
.
/root/.ssh
sudo로 실행하고 SSH 키 인증을 사용하는 경우 및 아래에서 키를 검색합니다.아니요사용자의 /home/myuser/.ssh
.
사용할 수 있는 ~/.ssh/config
파일 에도 동일하게 적용됩니다.sshfs
당신이 좋아하는 경우 ~/.ssh/config
:
Host remotehost
HostName 111.22.33.44
User root
Port 1234
IdentityFile ~/.ssh/id_rsa
그런 다음 다음 명령을 사용하여 일반 사용자로 원격 호스트를 마운트할 수 있습니다.
sshfs remotehost: local_dir
루트에서 실행하려면 -o IdentityFile /home/myuser/.ssh/id_rsa
"raw" 명령에 추가하거나 사용자의 SSH 키에 대한 전체 경로를 사용하여 생성할 수 있습니다 sshfs
./root/.ssh/config
Host remotehost
HostName 111.22.33.44
User root
Port 1234
IdentityFile /home/myuser/.ssh/id_rsa
이제 sshfs remotehost: local_dir
루트에서도 작동합니다.
일단 설치되면
.ssh/config
(원격에서 로컬로) 또는 (로컬에서 원격으로)을 사용하여 호스트 간에 전체 폴더를 복사할 수 있으므로 단일 일회성 작업의 경우에는 그럴 필요조차 없습니다.scp -r remotehost:remotedir localdir
scp -r localdir remotehost:remotedir
sshfs
상대 원격 경로를 사용하는 경우 이는 사용자의 홈 폴더를 기준으로 하며 이는
remotehost:remotedir
다음 과 같습니다.remotedir
remotehost:remotedir
remotehost:/home/myuser/remotedir
답변3
allow_other
나에게 문제를 해결한 것은 다음과 같이 명령에 옵션을 추가하는 것이었습니다 .
$ sshfs -o allow_other [email protected]:/home/user/my-projects ~/mount/my-projects
그러면 오류가 발생할 수 있습니다.
옵션allow_other는 /etc/fuse.conf에 "user_allow_other"가 설정된 경우에만 허용됩니다. 즐겨 사용하는 텍스트 편집기를 사용하여 이 헤더를 해결하려면 /etc/fuse.conf로 이동하여 주석 처리를 해제합니다(다음 # 제거).
user_allow_other
문제가 해결되어 sshfs
성공적으로 실행할 수 있다면 정말 좋습니다! 그렇지 않은 경우 다음 명령을 통해 사용자를 회로 차단 그룹에 추가해야 합니다.
$ sudo usermod -a -G fuse mark
퓨즈 그룹이 존재하지 않는다는 오류가 발생하는 경우 다음 방법으로 쉽게 그룹을 생성할 수 있습니다.
$ sudo groupadd fuse