我已经使用PuTTYgen生成了密钥对,并一直使用Pageant登录,因此当系统启动时,我只需输入一次密码短语。
如何在Linux中实现这一点?我听说过钥匙串,但我听说它使用了不同的密钥对格式——我不想改变我的Windows密钥,如果我能在Windows和Linux中以相同的方式无缝连接就太好了。
我已经使用PuTTYgen生成了密钥对,并一直使用Pageant登录,因此当系统启动时,我只需输入一次密码短语。
如何在Linux中实现这一点?我听说过钥匙串,但我听说它使用了不同的密钥对格式——我不想改变我的Windows密钥,如果我能在Windows和Linux中以相同的方式无缝连接就太好了。
当前回答
我最近从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;
非常快速和要点,得到的工作完成了所有的文件,腻子。如果它发现一个带有密码的密钥,它将停止并首先询问该密钥的密码,然后继续。
其他回答
如果你只有一个用户的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.
新版本的PuTTYgen(我的是0.64)能够在.ssh/authorized_keys文件中显示要粘贴到linux系统中的OpenSSH公钥,如下图所示:
道克→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
我认为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。
更多细节可以在这里找到一篇网络文章