我使用PuTTYgen生成了密钥对,并使用Pageant登录,这样当我的系统启动时,只需要输入一次密码短语。
在Linux中如何实现这一点?我听说过keychain
,但我听说它使用不同的密钥对格式 - 我不想更改我的Windows密钥,并且如果我能以相同的方式无缝连接到Windows和Linux,那将是很好的。
我使用PuTTYgen生成了密钥对,并使用Pageant登录,这样当我的系统启动时,只需要输入一次密码短语。
在Linux中如何实现这一点?我听说过keychain
,但我听说它使用不同的密钥对格式 - 我不想更改我的Windows密钥,并且如果我能以相同的方式无缝连接到Windows和Linux,那将是很好的。
puttygen
支持将您的私钥导出为OpenSSH兼容格式,然后您可以使用OpenSSH工具重新生成公钥。
转换-> 导出 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.pub > ~/.ssh/id_dsa.pub
cd ~/.ssh
然后再运行 chmod 700 id_rsa
。 - expert如果你手头只有一个PuTTY格式的用户公钥,你可以使用以下方法将其转换为标准的openssh格式:
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
我总是忘记这个,所以我要写在这里。非技术人员请绕道。
在Windows上制作一个键的最常见方式是使用Putty/Puttygen。Puttygen提供了一个很好的实用程序来将Linux私钥转换为Putty格式。然而,没有解决的问题是,在使用puttygen保存公钥时,在Linux服务器上它不会起作用。Windows将一些数据放在不同的区域,并添加了换行符。
解决方案:当你在puttygen中创建密钥对并到达公钥屏幕时,复制公钥并将其粘贴到一个带有.pub扩展名的文本文件中。这将节省您的系统管理员几个小时的烦恼和阅读像这样的帖子。
然而,系统管理员们,你们会遇到那些出问题的密钥文件,它在认证日志中不会显示任何错误消息,除了"找不到密钥,尝试密码",即使别人的密钥都在正常工作,而且你已经将这个密钥发送给用户15次。
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
需要将现有的puttygen公钥转换为OpenSSH格式。
解码块失败:无效格式
。 - Chris StryczynskiPuTTYgen的新版本(我的是0.64)能够显示OpenSSH公钥,以便复制到Linux系统中的.ssh/authorized_keys
文件中,如下图所示:
如果您想从PuTTY格式的密钥文件中获取私钥和公钥,可以在*nix系统上使用puttygen
。对于大多数基于apt的系统,puttygen
是putty-tools
软件包的一部分。
从PuTTY格式的密钥文件中输出私钥:
$ puttygen keyfile.pem -O private-openssh -o avdev.pvk
获取公钥:
$ puttygen keyfile.pem -L
brew install putty
- Juha Palomäkiputtygen inppk -O private-openssh -o outpem
和 puttygen inppk -L
(或者 ssh-keygen -y -f outpem
)。 - dave_thompson_085sudo 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
最近我遇到了这个问题,因为我从Linux上的Putty转移到了Linux上的Remmina。所以我有很多Putty的PPK文件在我的.putty
目录中,因为我已经使用它们8年了。对于这个问题,我使用了一个简单的bash shell for
命令来处理所有文件:
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;
非常迅速而且直截了当,为putty拥有的所有文件完成了工作。如果它发现一个带有密码的密钥,它会停止并首先要求输入该密钥的密码,然后才会继续。
在Linux下创建密钥,然后使用PuTTYgen将密钥转换为PuTTY格式可能更容易。
PPK → 使用PuttyGen和Docker生成OpenSSH 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
比重新打开puttygen还要快的方法是: