如何在 Linux 下将 .ppk 密钥转换为 OpenSSH 密钥?

如何在 Linux 下将 .ppk 密钥转换为 OpenSSH 密钥?

我知道可以在 Windows 上使用 puttygen 转换 .ppk,但在 Linux 上该怎么做?这可能吗?

答案1

用 Putty 来做。

  • Linux:使用你的包管理器安装 PuTTY(或者更简单的 PuTTY 工具):
  • 乌本图:sudo apt-get install putty-tools
  • 类似 Debian:apt-get install putty-tools
  • 基于 RPM:dnf install puttyyum install putty
  • Gentoo:emerge putty
  • ArchLinux的:sudo pacman -S putty
  • ETC。
  • 操作系统:安装自制,然后运行brew install putty

将密钥放在某个目录中,例如您的主文件夹。现在将 PPK 密钥转换为 SSH 密钥对:缓存搜索

为了生成私人的钥匙:

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa

并生成民众钥匙:

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

将这些密钥移动到~/.ssh并确保将私钥的权限设置为私有:

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

如果您已经尝试执行'git 克隆' 操作你可能也需要这样做

chmod 666 ~/.ssh/known_hosts

答案2

ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i标志是从 openssh 格式以外的格式导入的
  • -f标志表示从输入文件读取

资料来源:博客文章在 burnz.wordpress.com

答案3

获取私钥:

在 puttygen 中打开.ppk 文件:

puttygen ~/.ssh/id_dsa.ppk

导出为 openssh:

转换 → 导出 OpenSSH 密钥

获取公钥:

像以前一样开放私钥使用 puttygen,公钥位于 用于粘贴到 OpenSSH authorized_keys 文件中的公钥

答案4

我准备了一个 Docker 容器以使生活变得更简单:

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

在哪里:

  • /path/to/file.ppk- ppk 文件的本地路径
  • /path/to/output- 应放置私钥和公钥的本地路径

相关内容