我对 Linux 比较陌生。在 WSL2 上使用 Ubuntu。我使用 为 github 添加了一个没有密码的私钥ssh-add。我在整个会议期间使用了几次,但第二天我无法连接。当我列出所有使用的密钥时,ssh-add -l没有任何密钥。
我是否应该为每个会话添加密钥或为其创建自动化?或者这是 WSL 的正常(缺乏)持久性行为?
use*_*686 16
标准的OpenSSHssh-agent确实没有持久性。问题是它没有地方可以安全地存储解密的密钥。(如果将它们存储在磁盘上,那不会比您已有的密钥文件更好。)
只有 Windows 10 中的“OpenSSH for Windows”ssh-agent 服务内置了持久性,但这是 Microsoft 添加的自定义功能,它之所以有效,是因为 Windows 具有通用的操作系统级数据保护功能 \xe2\x80\x93 SSH 密钥使用您的登录密码 \xe2\x80\x93 进行加密,这在 Linux/BSD 世界中根本不通用。
\n(同样,完整版本的 Ubuntu(带有图形界面)用 GNOME Keyring 取代了 ssh-agent,GNOME Keyring 是一种密码存储服务(类似于 Windows 中的“凭据管理器”),并使用存储在密钥环。这可能在 WSL2 中不起作用。)
\n所以是的,您应该启动 ssh-agent 并在每次启动计算机时将密钥加载到其中。例如,您可以调整 WSL-Ubuntu 中的 ~/.profile 以自动加载密钥(您仍然会收到密码提示,只是不需要运行 ssh-add)\xe2\x80\x93 有几个帖子关于这样做。
\nGnuPG gpg-agent 可以配置为模拟 ssh-agent,但具有持久性 \xe2\x80\x93,尽管它仍然依赖于其他东西来记住重新启动时的密码(例如前面提到的 GNOME 密钥环),因此在 WSL 中它将ssh-add最多只能让你省去跑步的时间。
GitHub 上有一些项目将所有签名请求桥接到在 WSL之外运行的 SSH 代理,例如 Linux 'ssh' 认为它正在与 Linux ssh 代理通信,但它实际上是在与Windows ssh 代理通信,或者甚至参加 PuTTY 的选美比赛。
\n| 归档时间: |
|
| 查看次数: |
14592 次 |
| 最近记录: |