我正在尝试将树莓派 ( /home/pi/server_folder
) 中的文件夹自动安装到本地文件夹 ( /home/my_name/raspberrypi
)。当我设置空白 rsa 密钥时,我可以使用 sshfs(在 fstab 中自动挂载)来执行此操作,但是当我尝试使用实际密钥(如 123)时,树莓派文件系统将无法挂载。这是非常明显的,因为我必须提供密码,但是有没有办法让它在我第一次尝试访问时询问密码/home/my_name/raspberrypi
,或者做类似的事情?因为如果有人拿到我的笔记本电脑,如果我将 rsa 密钥留空,他们不需要输入密码或任何内容即可访问我的树莓派。我已经研究过autofs
、 和autosshfs
,但 autosshfs 不会下载,并且 autofs 没有解释如何使用实际的 rsa 密钥进行安装(好吧,我还没有找到有关如何操作的指南)。我正在使用 arch Linux,最新版本。这是 fstab 条目:
[email protected]:/home/pi/server_folder/ /home/my_name/raspberrypi fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/my_name/.ssh/id_rsa,allow_other,reconnect 0 0
这就是 arch wiki 所说的(但解释得不是很好)。
答案1
由于 SSHFS 基于 FUSE,因此更容易使用非 root 自动挂载程序。使用保险丝,这几乎就是它的设计目的。一次性设置:
mkdir ~/.afuse
ln -s .afuse/raspberrypi/server_folder ~/raspberrypi
要启动自动安装程序:
afuse -o mount_template="sshfs %r:/ %m" -o unmount_template="fusermount -u -z %m" ~/.afuse
确保SSH_AUTH_SOCK
在启动时设置该变量afuse
,即必须在之后启动ssh-agent
。运行ssh-add
将密钥加载到 SSH 代理中,然后您就可以访问 SSHFS 目录。
答案2
扩展吉尔斯的正确答案,并解决他关于“整合”的答案的评论中提出的一些进一步的想法保险丝进入(配置文件)启动(脚本)':
您可以按需启用sshfs安装方式添加脚本调用到您的例如~/.profile
或者创建用户级 systemd 服务单元。
我赞成系统 回答:~/.config/systemd/user/afuse.service
[Unit]
Description="SSHFS via Afuse automounter"
AssertPathExists=%h/scp/
AssertFileIsExecutable=/usr/bin/afuse
AssertFileIsExecutable=/usr/bin/sshfs
[Service]
Type=forking
WorkingDirectory=%h/scp
ExecStart=/usr/bin/afuse \
-o mount_template="sshfs -o ServerAliveInterval=10 -o reconnect %%r:/ %%m" \
-o unmount_template="fusermount -u -z %%m" .
Restart=always
PrivateTmp=true
#NoNewPrivileges=true
#Environment=
[Install]
WantedBy=default.target