다음 줄을 사용하여 / etc / fstab에 sshfs 마운트를 입력하려고합니다.
sshfs#oli@192.168.0.2:/media/usb0 /media/ExtHD fuse defaults,nonempty,allow_other 0 0
이 볼륨은 부팅시 마운트됩니다. 부팅 후 아무 일도 일어나지 않지만 sudo mount -a 명령을 사용하면 항상 암호를 묻는 메시지가 나타납니다. SSH 키를 설정하고 192.168.0.2로 컴퓨터로 전송했으며 암호없이 일반 ssh에 로그인 할 수 있습니다. 부팅시 볼륨을 자동으로 마운트 할 수 있도록 퓨즈의 비밀번호 요청을 중지하려면 어떻게해야합니까?
도움이된다면 아치 리눅스를 실행하는 랩톱에서 데비안을 실행하는 홈 서버에 연결하려고합니다. 감사
답변
키 기반 인증은 ssh
프로세스가 키를 찾을 수있는 경우에만 작동 할 수 있습니다. 아마도 홈 디렉토리에 키가있을 것입니다. 하지만 sshfs
열쇠를 어디에서 찾아야하는지 전혀 말하지 않았습니다 . 부팅시 root
모든 파일 시스템을 마운트하므로 키는 /root/.ssh
또는에 참조되어 있어야합니다 /root/.ssh/config
.
로그인 한 후 자신의 사용자로 파일 시스템을 마운트하는 것이 좋습니다. 로그인 할 때 실행되는 스크립트에 넣으십시오.
ssh-add ~/.ssh/name_of_key.id_rsa
sshfs homeserver:/media/usb0 ~/exthd
에 별칭을 넣으 homeserver
십시오 ~/.ssh/config
.
Host homeserver
HostName 192.168.0.2
User oli
답변
표준 사용자로 다음 구문을 사용하여 Ubuntu 14.04에서 fstab을 통해 sshfs를 마운트 할 수있었습니다 (CAPS의 내용은 입력 할 수있는 변수입니다).
USER@HOST:/REMOTE_DIR /LOCAL_DIR fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID,gid=USER_GID 0 0
이것은 /superuser/669287/automount-sshfs-using-fstab-without-mount-a에 있고 여기 에서 delay_connect 를 추가하는 정보의 조합입니다 /ubuntu/ 326977 / sshfs-is-not-mounting- 자동 부팅시 -despite-etc-fstab-configuration .
이 튜토리얼을 사용하여 USER_ID 및 USER_GID를 얻었습니다. https://kb.iu.edu/data/adwf.html
Unix에서 사용자의 UID 또는 GID를 찾으려면 id 명령을 사용하십시오. 특정 사용자의 UID를 찾으려면 Unix 프롬프트에서 다음을 입력하십시오.
id -u username
사용자 이름을 해당 사용자의 사용자 이름으로 바꾸십시오. 사용자의 GID를 찾으려면 Unix 프롬프트에서 다음을 입력하십시오.
id -g username
또한 전체 자습서를 원하면 https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04/에 게시됩니다.
답변
나는 같은 문제가 있었다.
이전에 ssh 키를 설정 ssh-keygen
한 다음ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.100
ssh는 비밀번호를 묻지 않고 잘 작동했기 때문에 sshfs가 여전히 비밀번호를 원했던 이유에 대해 혼란 스러웠습니다 …
즉 말하자면,
ssh root@192.168.0.100
잘 작동했지만 sshfs는 입력 할 때 여전히 암호를 요구했습니다.
sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other
Gilles가 설명한 것처럼 sshfs
루트 디렉토리에서 필요한 키를 찾고있었습니다.
따라서 필자는 홈 폴더의 숨겨진 .ssh 폴더에서 루트의 .ssh 폴더로 id_rsa 및 id_rsa.pub 파일을 복사하여이 문제를 해결했습니다.
cp /home/pi/.ssh/id_rsa /root/.ssh/
cp /home/pi/.ssh/id_rsa.pub /root/.ssh/
그런 다음 암호를 입력하지 않아도 다음을 입력해도 효과가 없었습니다.
sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other
답변
암호없이 부팅하려면 암호없이 공개 / 개인 ssh 키를 만들어야합니다. 권장하지는 않지만 최소한 chmod 400
루트 사용자로 해당 파일을 보호 할 수 있습니다 .
그 후 평소와 같이 마운트 포인트에 공개 키를 복사해야합니다.
ssh-copy-id -i my_new_key.pub oli@192.168.0.2
이 키를 사용하려면 sshfs에 지시해야합니다.
oli@192.168.0.2:/media/usb0 /media/ExtHD fuse defaults,nonempty,allow_other,'IdentityFile /path/to/private/key' 0 0
답변
다음 줄을 Debian 8.2에서 완벽하게 작동합니다 fstab
.
user@hostname:/path/to/localmountpoint /path/to/remotemountpoint fuse.sshfs _netdev,user,port=(if_not_22),idmap=user,transform_symlinks,identityfile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=user_id,gid=group_id 0 0
호스트 이름은 원격 서버 (마운트 할 폴더) 사용자가 로컬 및 원격으로 동일 함을 나타냅니다. (쉬운)
사용 ssh-keygen
하고 사용자 ssh-copy-id
가 키를 원격 서버 (호스트 이름)에 복사하는 데 사용할 ssh 키를 로컬로 작성했는지 확인하십시오 .
당신은 찾을 수 user_id
및 group_id
로컬 서버에서 사용자에 대한 /etc/passwd
.
또한 사용자에게 폴더에 대한 읽기 / 쓰기 권한이 있는지 확인하십시오 path/to/localmountpoint
.
답변
실제로 password_stdin 옵션을 사용하여 시작시 공개 키없이 SSHFS를 마운트 할 수 있지만 fstab에서는 마운트 할 수 없습니다.
필요한 것은 작은 스크립트 파일과 cron입니다.
공개 키는 항상 더 나은 선택입니다. 그러나 때로는 공개 키가 작동하지 않습니다 (몇 번이나 그 문제가 발생했습니다). 스크립트 파일에는 비밀번호가 포함되어 있습니다. 따라서 루트 만이 파일에 대한 권한을 가지고 있는지 확인해야합니다!
스크립트 파일은 다음과 같습니다 (/root/automount.sh).
#!/bin/sh
if [ $(mount | grep 'user@server:/folder' | wc -l) -ne 1 ]
then
echo 'PASSWORD' | sshfs user@server:/folder /mnt/mountpoint -o password_stdin,allow_other
echo 'SSHFS has been mounted.'
else
echo 'SSHFS is already mounted.'
fi
시작시이를 실행하려면 crontab을 루트로 사용하고 다음 줄을 입력하십시오.
@reboot /root/automount.sh
위에서 언급했듯이 일반 텍스트 비밀번호가 포함되어 있으므로 아무도 파일을 읽을 수 없도록해야합니다!
-rwx------ 1 root root 526 Nov 21 12:57 automount.sh
지금은 시스템을 재부팅 할 때마다 자격 증명을 사용하여 SSHFS를 자동으로 마운트합니다.
답변
같은 문제가 있었다. 결국 유형을 단순 퓨즈로 설정하거나 옵션을 잘라내어 다음과 같이 할 수 있습니다.
fuse reconnect,idmap=user,allow_other,default_permissions
결국 나를 위해 일한