SSHFS 是否支持 ssh-agent 转发?

SSHFS 是否支持 ssh-agent 转发?

我希望能够仅使用客户端上的密钥按需安装备份服务器,因为我不会将 SSH 密钥留在我管理的服务器上。SSHFS 是否支持 ssh-gent 转发以及如何支持?

在文档中没有找到答案。

提前致谢!

答案1

可以针对每个用例临时执行此操作,方法是使用-E 手册页

例如,如果你是host

client:    $ ssh -A user@host
user@host: $ sudo -E sshfs -o allow_other user@host2:/ /mnt

这会将您的代理连接从client转发hosthost2sudo允许在执行时保留环境sshfs

答案2

是的,它支持。您只需要启用代理转发。SSHFS 对它是透明的,如果它适用于您的系统,那么它也适用于 SSHFS。

证明如下:

[root@novaprime ~]# ssh -A hercules Last login: Tue Jan 22 23:46:47 2019 from gateway [root@hercules ~]# sshfs -o allow_other [email protected]:/ /mnt [root@hercules ~]# df -Ph /mnt Filesystem Size Used Avail Use% Mounted on [email protected]:/ 49G 9.0G 40G 19% /mnt [root@hercules ~]#

答案3

好的,问题解决了。问题是我以 root 身份sshfs通过 执行了命令sudo,所以我的用户环境(SSH_* 变量)无法被 root 访问,因此我将用户 SSH 环境变量添加到sudoers文件中:

Defaults env_reset
Defaults env_keep += "EDITOR BORG_REPO BORG_PASSPHRASE BORG_RSH VISUAL SHELL LSCOLORS LS_COLORS LESS LESSCHARSET LESSEDIT LANG SSH_AUTH_SOCK SS
H_CLIENT SSH_CONNECTION SSH_TTY"

再次登录并以 root 身份运行 sshfs 后,我的密钥被正确转发到服务器。

不确定这是否是世界上最安全的事情,但我愿意接受建议以妥善解决这个问题。

相关内容