sshfs 总是在 fstab 中要求输入密码?

sem*_*ous 26 ssh fstab sshfs

我正在尝试使用以下行在 /etc/fstab 中输入 sshfs 安装:

sshfs#oli@192.168.0.2:/media/usb0 /media/ExtHD fuse     defaults,nonempty,allow_other 0 0
Run Code Online (Sandbox Code Playgroud)

以便在启动时安装此卷。启动后,什么也没发生,但是当我使用命令 sudo mount -a 时,总是提示我输入密码。我已经设置了 SSH Keys 并将它们传输到 192.168.0.2 的计算机上,并且可以在没有密码的情况下登录到常规 ssh。如何阻止保险丝询问我的密码,以便在启动时自动安装卷?

如果它有帮助,我正在尝试从运行 Arch Linux 的笔记本电脑连接到运行 Debian 的家庭服务器。谢谢

Gil*_*il' 14

只有在ssh进程可以找到您的密钥时,基于密钥的身份验证才能起作用。您大概在您的主目录中有您的密钥;但你从来没有告诉sshfs过去哪里找钥匙。在启动时,它将root挂载所有文件系统,因此密钥必须/root/.ssh/root/.ssh/config.

我建议您在登录后以您自己的用户身份挂载文件系统。将其放入登录时执行的脚本中:

ssh-add ~/.ssh/name_of_key.id_rsa
sshfs homeserver:/media/usb0 ~/exthd
Run Code Online (Sandbox Code Playgroud)

homeserver在您的~/.ssh/config: 中添加一个别名:

Host homeserver
HostName 192.168.0.2
User oli
Run Code Online (Sandbox Code Playgroud)


var*_*vid 12

通过使用以下语法作为标准用户,我能够通过 fstab 与 Ubuntu 14.04 进行 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
Run Code Online (Sandbox Code Playgroud)

这是在此处找到的信息的组合https://superuser.com/questions/669287/automount-sshfs-using-fstab-without-mount-a并从此处添加delay_connect https://askubuntu.com/questions/ 326977/sshfs-is-not-mounting-automatically-at-boot-despite-etc-fstab-configuration

我使用本教程来获取我的 USER_ID 和 USER_GID:https ://kb.iu.edu/data/adwf.html

要在 Unix 中查找用户的 UID 或 GID,请使用 id 命令。要查找特定用户的 UID,请在 Unix 提示符下输入:

id -u username
Run Code Online (Sandbox Code Playgroud)

将 username 替换为相应用户的用户名。要查找用户的 GID,请在 Unix 提示符下输入:

id -g username
Run Code Online (Sandbox Code Playgroud)

另外,如果你想要一个完整的教程,它会发布在https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04/