我知道可以在 Windows 上使用 puttygen 转换 .ppk,但在 Linux 上该怎么做?这可能吗?
答案1
用 Putty 来做。
- Linux:使用你的包管理器安装 PuTTY(或者更简单的 PuTTY 工具):
- 乌本图:
sudo apt-get install putty-tools
- 类似 Debian:
apt-get install putty-tools
- 基于 RPM:
dnf install putty
或yum 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
- 应放置私钥和公钥的本地路径