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

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


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

PuTTY常见问题:A.2.2


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

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


如果你只有一个用户的putty格式的公钥,你可以把它转换成标准的openssh格式,如下所示:

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

参考文献

来源:http://www.treslervania.com/node/408 镜子:https://web.archive.org/web/20120414040727/http: / / www.treslervania.com/node/408。

文章副本

I keep forgetting this so I'm gonna write it here. Non-geeks, just keep walking. The most common way to make a key on Windows is using Putty/Puttygen. Puttygen provides a neat utility to convert a linux private key to Putty format. However, what isn't addressed is that when you save the public key using puttygen it won't work on a linux server. Windows puts some data in different areas and adds line breaks. The Solution: When you get to the public key screen in creating your key pair in puttygen, copy the public key and paste it into a text file with the extension .pub. You will save you sysadmin hours of frustration reading posts like this. HOWEVER, sysadmins, you invariably get the wonky key file that throws no error message in the auth log except, no key found, trying password; even though everyone else's keys are working fine, and you've sent this key back to the user 15 times. ssh-keygen -i -f keyfile.pub > newkeyfile.pub Should convert an existing puttygen public key to OpenSSH format.


我认为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。

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


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

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

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

对于公钥:

$ puttygen keyfile.pem -L


我最近从Linux的Putty转移到Linux的Remmina时遇到了这个问题。所以我在我的。Putty目录中有很多PPK文件,因为我已经使用它8年了。为此,我使用了一个简单的命令为bash shell做所有文件:

cd ~/.putty
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;

非常快速和要点,得到的工作完成了所有的文件,腻子。如果它发现一个带有密码的密钥,它将停止并首先询问该密钥的密码,然后继续。


新版本的PuTTYgen(我的是0.64)能够在.ssh/authorized_keys文件中显示要粘贴到linux系统中的OpenSSH公钥,如下图所示:


sudo apt-get install putty

这将自动安装puttygen工具。

现在要将PPK文件转换为SSH命令使用,请在终端中执行以下命令

puttygen mykey.ppk -O private-openssh -o my-openssh-key

然后,您可以通过SSH连接:

ssh -v user@example.com -i my-openssh-key

http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603


道克→PPK OpenSSH和PuttyGen RSA &。

私钥:

docker run --rm -v $(pwd):/app zinuzoid/puttygen private.ppk -O private-openssh -o my-openssh-key

公共密钥:

docker run --rm -v $(pwd):/app zinuzoid/puttygen private.ppk -L -o my-openssh-key.pub

参见https://hub.docker.com/r/zinuzoid/puttygen


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

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