使用 sshfs 与 ssh-agent 和/或 kwallet

使用 sshfs 与 ssh-agent 和/或 kwallet

我正在使用带有密码保护密钥对的 sshfs 来通过 shell 脚本挂载远程文件夹。我也在该脚本中使用了 ssh。

每次启动 shell 脚本时,我都会在命令行上收到每个 sshfs 调用的密码请求。我需要防止这种情况发生。

有没有办法将 sshfs 与 ssh-agent 和/或 kwallet 一起使用(就像我对 ssh 所做的那样)?或者我可以将现有的 ssh 连接与 sshfs 重用?

答案1

您是sshfs从 shell 开始,还是从启动时脚本开始?

如果你从 shell 启动它,并且你有一个正在运行的 ssh-agent,它应该就可以工作:

$ ssh-add -l
2048 SHA256:XXXXX /home/ji/.ssh/id_rsa (RSA)
$ echo success > foo
$ scp foo ins:
  ...
$ rm foo
$ mkdir /tmp/j
$ sshfs ins: /tmp/j
$ cat /tmp/j/foo
success

如果您从环境中尚未有 SSH_AUTH_SOCK 的位置启动它,并且假设 ssh-agent 已经处于活动状态并具有密钥,则只需将 SSH_AUTH_SOCK 设置为正确的值,您可以通过运行ps uxeww | grep SSH_AUTH_SOCK和处理输出来获取该值,或者只需查看/tmp/ssh-*/*您可以访问的任何套接字并使用它!我假设您可以编写一个简单的 shell 脚本来执行此操作!

答案2

  1. 取消注释(或添加行)user_allow_other/etc/fuse.conf
  2. 不使用 sudo 运行 mount

sshfs 在前台运行,我对此很满意。不想留下远程挂载,以免在生产系统中发生潜在事故。

相关内容