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

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


当前回答

道克→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

其他回答

在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

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

我最近从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公钥,如下图所示:

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

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