ssh(filezilla)连接虚拟机,每一次都需要密码

我在host上运行filezilla连接虚拟机,之前已经从host上运行过ssh-copy-id user@guestVM,能够正常连接。另外,我在虚拟机中设置sshd为不允许密码登录,仅能使用公钥登录。

问题是,我每一次使用filezilla登录虚拟机时,都需要输入在Host上创建的密钥的保护密码(用来保护密钥)。除非我不关闭fillezilla。

有没有办法,不用每一次都输入密码?或者,只能取消host上密钥的保护密码才行?

我现在使用的是debian12+kde。之前用debian12+gnome时,filezilla不需要输入host密钥的保护密码。

把解密后的密钥加进 ssh agent 里去。
另外 control master 不仅可以省去后续输入密码,也可以省去每次都建立新连接。(不过我不知道 filezilla 支不支持)

2 个赞

使用man ssh_config查看手册页并搜索AddKeysToAgent,看看是不是你需要的。

1 个赞

果然,问题解决了!
:+1: :+1:

host系统重启后,ssh-agent失效了。运行ssh-add -l命令提示为空。

试了几次,ssh-add 私钥后,ssh-add -l命令显示了私钥,重启后再运行ssh-add -l则提示为空,连接虚拟机又需要输入密码。
不重启host系统的话,好像没问题,不用输入密码。

这要咋弄?

如果是使用了AddKeysToAgent yes配置,只有开机后和重启ssh-agent服务之后需要输入一次密码,后续就不需要了。

这是必需的,因为你的密钥是加密的,你不输入密码就没办法解密和添加密钥。

你不想输密码就不要加密 key 了呀。

明白了。

如果不加密,有其它方法来提升key的安全性么?
我总感觉加密可以让key更安全一些,比如key文件被盗。

为什么 key 会被盗呢?

不是会被盗,而是增加个保障;万一被盗,好歹有个密码保护一下。

如果不会被盗,那就不需要增加保护了。如果会被盗,考虑一下如何被盗。我是很难想像有且仅有 key 被盗的场景。

1 个赞

你提示的有道理,应该考虑的是如何被盗。