我知道自从 Mac OS X Leopard 以来,Keychain 已经支持存储 SSH 密钥。有人可以解释一下这个功能应该如何工作。
我有一些生成的 RSA 密钥存储在我的 ~/.ssh 目录中,用于访问各种服务器。我没有在这些键上设置密码。目前为了登录这些服务器,我在终端中使用以下命令:
评估`ssh-agent` ssh 添加 ~/.ssh/some_key_rsa ssh 用户@服务器
(我已经编写了一些 Bash 函数来使这更容易。)
使用钥匙串有没有更好的方法来做到这一点?
我创建了几个自签名 S/MIME 证书(使用 OSX Keychain & OpenSSL),然后将它们导出到 3 个文件中:
当尝试将这些导入回另一台 Mac 时,证书和私钥导入没有任何问题。但是无法导入公钥。
相反,我收到以下错误消息:
发生了错误。无法导入项目。
本次内容无法检索

如何导入公钥?是否应该将其转换为另一种格式以进行导入?
我最近在 Ubuntu 9.04 上从 Gnome 切换到 Xfce。
在 Gnome 中,我第一次输入密码时,它提示我保存密码。
但是,在 Xfce 中,每次连接时都会提示我输入密码。
有没有一种简单的方法可以在 Xfce 中保存密码?
我每天都使用 Mac OS X Lion 并通过 SSH 登录远程主机。尽管我使用 SSH 密钥对进行远程身份验证并且我不需要机动化每个主机的登录短语,但终端要求输入密码来访问我的 SSH 私钥仍然很烦人。
出于安全原因,我认为必须需要一个用于访问 SSH 私钥的密码。有没有办法让终端在启动时只询问一次短语,然后记住它,并在以后的 SSH 会话中自动使用我的私钥?
有一个名为的脚本keychain在 Gentoo Linux 上运行良好。但我从来没有在 Mac OS X Lion 上弄明白。更重要的是,有很多令人生畏的术语,例如ssh-agent,ssh-add。在阅读了有关这些 SSH 工具包的各种材料并做了一些令人沮丧的实验后,我更加困惑了。
因此,我来到了StackExchange,就以下问题寻求一些建议。
ssh-agent,ssh-add,keychain,Keychain Access.app以及他们如何互相交流?Keychain Access.app?它不像以前那样存储 SSH 短语。我在这里列出我所做的。希望有关于我错过的步骤的线索。
步骤 1. 在我的 Mac 上创建一个 SSH 密钥对。
$ ssh-keygen -t rsa -C "me@email.com"
# Set a passphrase for accessing the private key.
Run Code Online (Sandbox Code Playgroud)
步骤 …
我有一个这样的证书文件:
-----BEGIN CERTIFICATE-----
MIIHCDCCBPC ....
Run Code Online (Sandbox Code Playgroud)
通过转到“文件->导入项目”(它是“Elin”),我可以让它显示在“证书”下。

但是,我无法将其添加到“我的证书”中,我认为在连接到某些网站时必须显示它:

我怎么把它弄到那里去?(例如,我是否需要将其转换为 .p12,在这种情况下如何转换?)
如果我将 30 件物品从一个钥匙串移到另一个钥匙串,我必须输入相同的密码 30-32 次,每移动一次。
我可以避免这种情况吗?在 OSX 10.6 Server 上,使用 Keychain Access。
我有几个键似乎是用相同的名称生成的。我想知道哪个公钥与哪个私钥匹配,以便我可以重命名/删除它们。这是重要的事情(保留公钥)还是每次请求证书时都会生成公钥?
脚步
$ git push预期的
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
实际的
Enter passphrase for key '/Users/whit537/.ssh/github':
Run Code Online (Sandbox Code Playgroud)
笔记
uname -a:Darwin chad.whitacre 10.7.0 Darwin Kernel Version 10.7.0:Sat Jan 29 15:17:16 PST 2011;根:xnu-1504.9.37~1/RELEASE_I386 i386更新
2011-04-12:我security通过相关边栏中的一个问题发现了该工具(发布时没有在可能的答案列表中注意到它)。我尝试跑步,security unlock-keychain但得到了相同的结果。似乎应该有某种方法可以做到这一点。实际上,有两个密钥有问题,它们是长密码,而不是短密码,我白天经常需要它们。所以我有一些动力去追查到底。
2011-04-13:这听起来很有希望。我/tmp/launch-*****/Listeners在 MacBook 上看到了该文件。下次我使用 PC 时,我将尝试SSH_AUTH_SOCK在 PuTTY 会话中进行设置。如果这行得通,我会看到有关.profile …
我最近需要将一些 SSL 证书添加到我的 Mac (OSX 10.10.5) 以连接到远程服务。2 因素身份验证需要证书。
我在 OSX 中拥有完整的管理员权限。我能够成功地将证书添加到钥匙串。我可以进入 KeyChain 应用程序并将证书设置为“始终信任”而不会出现问题。
当我尝试建立连接时(在这种情况下使用 Cyberduck 进行 WebDAV),我被要求选择正确的证书,然后我得到这个窗口:
所以我输入了我的用户名和密码,它们确实具有完全的管理员权限。我单击“允许”,窗口再次弹出,再次询问我的用户名和密码。它似乎没有任何作用。没有错误或类似的东西。单击“拒绝”显然会告诉系统我拒绝证书并且它不会让我连接。
我可以直接进入 KeyChain 应用程序并使用我的用户名和密码(具有管理员权限)解锁并进行我想要的所有更改。那么为什么这个对话框不接受我相同的用户名和密码?
更新
输入我的用户名和密码并单击“允许”时,系统日志报告:
Apr 22 10:05:15 my-computer.local Cyberduck[1621]: [background-1] ERROR ch.cyberduck.core.ssl.CertificateStoreX509KeyManager - Keystore not loaded Get Key failed: pad block corrupted
Apr 22 10:05:16 my-computer.local com.apple.SecurityServer[87]: Problem opening rules file "/etc/authorization": No such file or directory
Run Code Online (Sandbox Code Playgroud)
经过一番调查,该/etc/authorization文件似乎已在 Mavericks (OSX 10.9) 中删除。那么这里到底发生了什么?为什么它试图找到操作系统应该知道不再使用的这个文件?
keychain ×10
macos ×7
ssh ×4
certificate ×2
public-key ×2
fish ×1
openssl ×1
passwords ×1
private-key ×1
ssh-agent ×1
xfce ×1
xubuntu ×1