Gok*_*ari 6 ssh gnome-keyring 15.04
每次我尝试通过 SSH 登录远程服务器或在 git 存储库上尝试 git pull/push 时,我都会收到提示:
Enter passphrase for key '/home/th0th/.ssh/id_rsa':
Run Code Online (Sandbox Code Playgroud)
我想将我的密钥添加到钥匙圈,并且我希望在我登录时解锁钥匙圈而无需输入密码(我认为这是 Arch Linux 上 gnome-shell 的默认行为)。我尝试使用添加我的密钥,seahorse但即使我的密钥在Gnome2 Key Storage类别下也是可见的,seahorse我会在终端上提示我输入密码。这是一个错误还是我在这里错过了一步?
编辑:防止海马提示输入密码是另一个问题。我的问题是,gnome 密钥环不会记住 SSH 密钥密码。
我在 15.04 BTW。
核心问题是您有一个受密码保护的 SSH 密钥。这意味着私钥实际上是加密的,需要解密才能使用,因此需要密码。(同样的逻辑也适用于 PGP 密钥操作,例如签名,您需要使用私钥来生成签名)。应该有一个 SSH 身份验证代理,或者至少有一个与 gnome-keyring (14.04) 一起工作的代理,它将处理“提示”和“gnome-keyring”,但是请注意,在CLI 环境。
Seahorse 应该在“Secure Shell”下显示您的 SSH 密钥,而不是其他任何内容,这可能会导致一个问题。但主要问题是 SSH 密钥的私钥一半是加密的并受密码保护,并且需要密码来启动与密钥的“安全”协商部分。然而,它实际上并不是seahorse控制身份验证的,它实际上是gnome-keyring必须记住事物的一部分。虽然它应该能够记住您的密码,但它显然无法按照需要的方式进行操作,为您提供 GUI 提示以输入密码,然后将密码存储在密钥环中。
在所有情况下删除密码提示的唯一正确方法是从 SSH 密钥中删除密码。 虽然 SSH 密钥理想情况下应该有密码作为额外的保护层,但理想情况下,您只会在会话期间或 GUI 会话期间存储私钥的密码,直到您注销或重新启动,甚至理想情况下您进行 SSH 密钥身份验证的时间很短。这样做是出于安全目的,但在某些情况下这是不可行或不必要的。
如果您希望从 SSH 密钥中删除密码,则需要执行以下步骤:(来源)
删除密码。
openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa_new
备份并替换您的 SSH 私钥。
mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup mv ~/.ssh/id_rsa_new ~/.ssh/id_rsa
设置密钥权限,因为私钥仅供所有者读取(这是 OpenSSH 强制执行的)
chmod 400 ~/.ssh/id_rsa
通过 SSH 测试连接,应该不会出现密码提示。
| 归档时间: |
|
| 查看次数: |
3753 次 |
| 最近记录: |