![完全避免在 Debian 中输入 ssh id_rsa 密钥的密码](https://linux22.com/image/1625095/%E5%AE%8C%E5%85%A8%E9%81%BF%E5%85%8D%E5%9C%A8%20Debian%20%E4%B8%AD%E8%BE%93%E5%85%A5%20ssh%20id_rsa%20%E5%AF%86%E9%92%A5%E7%9A%84%E5%AF%86%E7%A0%81.png)
我正在运行带有 Xfce 桌面环境的 Debian,虽然我尝试了许多解决方案,但每次重启时我总是需要输入一次密码。
- 在 macOS 中,我可以简单地使用
ssh-add -l > /dev/null || ssh-add -A
,macOS 的默认钥匙串管理器会记住其钥匙串中的密码,从而无需再输入密码,但-A
在 Debian 中不起作用。
我在 中有以下内容.bashrc
:if [ ! -S ~/.ssh/ssh_auth_sock ]; then eval `ssh-agent` ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock fi export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock ssh-add -l > /dev/null || ssh-add
- 我也尝试过使用
keychain
,我认为它与 macOS 的钥匙串相同,但keychian
每次重启时也需要密码。
我怎样才能让某些 Debian 密钥管理器安全地记住密码,从而永远避免输入密码?
答案1
几乎所有方法都以某种方式涉及 PAM,因为您的系统登录密码是唯一无需存储在磁盘上即可获得的信息。
最简单的方法是pam_ssh
自动启动 ssh-agent 并使用您的系统密码从标准位置和从加载所有密钥~/.ssh/session-keys.d/
。
在 Debian 上,libpam-ssh 包会自动将模块插入到正确的位置。其他类似方法:
- pam_gnome_keyring 使用您的登录密码来解锁 GNOME Keyring,它存储了您的 SSH 密钥的密码。
- pam_ecryptfs 使用您的登录密码来解锁加密的 eCryptFS 文件系统,您可以在其中放置密钥而无需任何密码。
- pam_gnupg 使用您的登录密码来解锁存储在 gpg-agent 中的密钥(可能是 PGP、SSH 或 S/MIME 密钥)。
如果您不希望启动过程显示任何密码提示……那么,没有安全的方法可以在您的系统上存储密钥。您最多可以使用 TPM 芯片或其他硬件令牌来存储 RSA 密钥,而无需提炼它们——它们将被绑定到它们所在的硬件元素上。
- 许多新电脑都配有 TPM 模块,或者(对于台式机)配有针头以连接单独购买的模块,或者偶尔配有通过固件模拟的“fTPM”。此类模块可以保存对称和非对称密钥。
- 有一些 USB“智能卡”令牌提供 PIV 或 OpenPGP 接口,两者都可用于 SSH。对于笔记本电脑,一些 YubiKey 型号几乎适合完全USB 端口内。