如何使用 RSA 密钥按需自动挂载 ssh 文件系统

如何使用 RSA 密钥按需自动挂载 ssh 文件系统

我正在尝试将树莓派 ( /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

扩展吉尔斯的正确答案,并解决他关于“整合”的答案的评论中提出的一些进一步的想法进入(配置文件)启动(脚本)':

您可以按需启用安装方式添加脚本调用到您的例如~/.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

相关内容