sshfs 마운트, sudo 권한이 거부되었습니다.

sshfs 마운트, sudo 권한이 거부되었습니다.

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_othersshfs 옵션을 사용해야 한다고 생각합니다 . 이를 위해서는 다음과 같이 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/.sshsudo로 실행하고 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 localdirscp -r localdir remotehost:remotedirsshfs

상대 원격 경로를 사용하는 경우 이는 사용자의 홈 폴더를 기준으로 하며 이는 remotehost:remotedir다음 과 같습니다.remotedirremotehost:remotedirremotehost:/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

관련 정보