我已经使用PuTTYgen生成了密钥对,并一直使用Pageant登录,因此当系统启动时,我只需输入一次密码短语。

如何在Linux中实现这一点?我听说过钥匙串,但我听说它使用了不同的密钥对格式——我不想改变我的Windows密钥,如果我能在Windows和Linux中以相同的方式无缝连接就太好了。


当前回答

puttygen支持将您的私钥导出为OpenSSH兼容的格式。然后可以使用OpenSSH工具重新创建公钥。

打开PuttyGen 点击加载 加载您的私钥 转到转换->导出OpenSSH并导出您的私钥 将您的私钥复制到~/。Ssh /id_dsa(或id_rsa)。 使用ssh-keygen创建公钥的RFC 4716版本 Ssh-keygen -e -f ~/。Ssh /id_dsa > ~/.ssh/id_dsa_com.pub 将RFC 4716版本的公钥转换为OpenSSH格式: Ssh-keygen -i -f ~/.ssh/id_dsa_com. shPub > ~/.ssh/id_dsa.pub

看这个和这个了解更多信息。

其他回答

puttygen支持将您的私钥导出为OpenSSH兼容的格式。然后可以使用OpenSSH工具重新创建公钥。

打开PuttyGen 点击加载 加载您的私钥 转到转换->导出OpenSSH并导出您的私钥 将您的私钥复制到~/。Ssh /id_dsa(或id_rsa)。 使用ssh-keygen创建公钥的RFC 4716版本 Ssh-keygen -e -f ~/。Ssh /id_dsa > ~/.ssh/id_dsa_com.pub 将RFC 4716版本的公钥转换为OpenSSH格式: Ssh-keygen -i -f ~/.ssh/id_dsa_com. shPub > ~/.ssh/id_dsa.pub

看这个和这个了解更多信息。

甚至比重新打开puttygen更快,我经常做的是:

复制公钥文件。 在副本中,将单词“ssh-rsa”放在开头。 删除开始/结束注释行和所有其他换行符。 保存。结果是一个适用于openssh的一行键。

在linux下创建密钥并使用PuTTYgen将密钥转换为PuTTY格式可能更容易。

PuTTY常见问题:A.2.2

或者,如果你想从一个PuTTY格式的密钥文件中获取私钥和公钥,你可以在*nix系统上使用puttygen。对于大多数基于apt的系统,puttygen是putty工具包的一部分。

从PuTTY格式的密钥文件中输出私钥。

$ puttygen keyfile。pem -O private-openssh -O avdev.pvk . pem

对于公钥:

$ puttygen keyfile.pem -L

我认为tscsgrad(几年前)想要问的是如何让Linux像他的Windows机器那样运行。也就是说,存在一个代理(pageant),它持有私有密钥的解密副本,因此只需输入一次密码短语。然后,ssh客户端putty可以登录到其公钥被列为“已授权”的计算机,而无需密码提示。

类似的情况是,Linux作为ssh客户端,拥有一个持有解密私钥的代理,这样当tscsgrad键入“ssh host”时,ssh命令将获得他的私钥,并且不会提示输入密码。当然,主机必须持有~/.ssh/authorized_keys中的公钥。

这个场景的Linux模拟是使用ssh-agent(模拟pageant)和ssh-add(模拟向pageant添加私钥)完成的。

对我有效的方法是: $ ssh-agent $SHELL 这个$SHELL是我需要的使代理运行并保持运行的魔术。我在网上的某个地方找到了它,它结束了我几个小时的埋头苦干。

现在我们有了选美运行的模拟,一个没有加载键的代理。

打字 ssh-add美元 它本身将添加(默认情况下)在~/中的默认标识文件中列出的私钥。ssh。

更多细节可以在这里找到一篇网络文章