在 unix 环境中使用 puttygen 生成的公钥?

在 unix 环境中使用 puttygen 生成的公钥?

可能重复:
如何在 Linux 下将 .ppk 密钥转换为 OpenSSH 密钥?

(unix,这里:ubuntu 10.4)

我知道如何在 unix(ssh-keygen)中创建 ssh 密钥对以及如何在 windows(puttygen)中创建它。我的情况缺少的部分是在 unix shell 中使用在 windows(puttygen)中生成的密钥对。

在这种特殊情况下,我需要将公钥放在哪里,以便将其用作 git 中的 ssh 密钥。

答案1

取决于您需要哪个密钥...

私钥——用于登录将 Unix 系统转换为另一个 Unix 系统

您必须首先使用 PuTTYgen 将密钥从 PuTTY 格式转换为 OpenSSH 可以使用的格式。

  • 在 Windows 版本的 PuTTYgen 中,使用转换 → 导出 OpenSSH 密钥菜单项;

  • 在 Linux 版本中,puttygen mykey.ppk -O private-openssh -o mykey

仅公钥 – 用于从 Windows 登录Unix

参见丹尼尔的回答。

答案2

Puttygen 窗口包含一个文本区域,其中有 SSH 所需格式的公钥。

复制它,并将其添加到服务器上的文件中,~/.ssh/authorized_keys单独一行。确保文件和目录不能被组和其他人读取/写入,即运行chmod go-rwx ~/.ssh ~/.ssh/authorized_keys

然后服务器将使用私钥进行身份验证来接受您的登录。

答案3

好的,我想我没有表达清楚,但找到了解决方案:

  1. 启动 puttygen
  2. 加载私钥
  3. 菜单转换|导出 OpenSSH 密钥
  4. 保存在某处,打开,将内容复制到剪贴板,在 Linux 上粘贴到文件:$HOME/.ssh/id_dsa
  5. (可选)复制文本区域的内容“用于粘贴到 OpenSSH authorized_keys 文件中的公钥”,在 Linux 上粘贴到文件:$HOME/.ssh/id_dsa.pub

您现在可以从 shell 使用此 SSH 密钥登录远程系统。

附注:要在 Linux shell 中无缝使用 Windows Putty 中的 git 连接到 git,请在 Putty 会话中设置以下选项:

在此处输入图片描述

(并且您必须将公钥放在 ~/.ssh/authorized_keys 中,当然..)

相关内容