在Mac Terminal中使用PPK文件通过SSH连接到远程连接[关闭]


140

我一直在Windows XP上使用Putty,并使用.ppk文件连接到我的Linux服务器(几个服务器)。

在服务器上,我有以下文件夹和文件〜/ .ssh / authorized_keys

我现在想使用Mac通过终端进行连接。我已经手动设置了到服务器的远程连接,并且想知道如何使用ppk文件或其中的私钥/公钥进行设置。

请注意:我已经在使用Windows的私钥/公钥登录,所以我不需要使用keygen创建新密钥,我只想知道现在已经有了密钥的情况下如何进行设置。(换句话说,我已经在服务器上拥有了授权密钥列表,以及公共和私有密钥)。

Answers:


373

您可以ssh直接在Mac上的终端机上操作,但需要使用.PEM密钥而不是putty .PPK密钥。您可以在Windows上使用PuttyGen将转换.PEM.PPK,但是我不确定是否可以采用其他方法。

您也可以putty通过port或使用Mac 转换密钥brew

sudo port install putty

要么

brew install putty

这也将安装puttygen。要puttygen输出.PEM文件:

puttygen privatekey.ppk -O private-openssh -o privatekey.pem

获得密钥后,打开一个终端窗口,然后:

ssh -i privatekey.pem user@my.server.com

私钥必须具有严格的安全设置,否则SSH会抱怨。确保只有用户才能读取密钥。

chmod go-rw privatekey.pem

1
sudo端口 肯定不存在...至少在小牛队中
Pedro Luz

23
您也可以使用brew:安装腻子brew install putty。请注意,我们不在sudo这里使用;)
GabLeRoux

2
有用的答案!感谢那!!对于未安装端口的用户,可以通过以下链接安装git:codingsteps.com/installing-and-using-putty-on-mac-os-x
Viraj

3
当我尝试运行puttygen命令时,此错误是什么意思?输入密码以加载密钥:断言失败:(random_active),函数random_byte,文件./../sshrand.c,第313行。中止陷阱:6
fastasleep 2014年

6
您需要从HEAD安装冲泡配方,因此请先brew uninstall使用brew install putty --HEAD。这对我有用。
Dokie 2014年

31

将PPK转换为OpenSSh

OS X:安装Homebrew,然后运行

冲泡安装腻子

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

生成私钥:

光盘〜

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

并生成公共密钥:

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

将这些密钥移到〜/ .ssh并确保将您的私钥的权限设置为private:

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

与SSH服务器连接

ssh -i ~/.ssh/id_dsa username@servername

端口转发以连接mysql远程服务器

ssh -i ~/.ssh/id_dsa -L 9001:127.0.0.1:3306 username@serverName

19

有一种方法可以在Mac上不安装腻子的情况下进行操作。您可以在Windows上使用PuTTYgen轻松地将现有PPK文件转换为PEM文件。

启动PuTTYgen,然后使用“加载”按钮加载现有的私钥文件。从“转换”菜单中,选择“导出OpenSSH密钥”,并保存带有.pem文件扩展名的私钥文件。

将PEM文件复制到您的Mac并将其设置为用户只读:

chmod 400 <private-key-filename>.pem

然后,您应该能够使用ssh连接到远程服务器

ssh -i <private-key-filename>.pem username@hostname

9
There is a way to do this without installing putty on your Mac. You can easily convert your existing PPK file to a PEM file using PuTTYgen on Windows.因此,在Mac上执行此操作的最佳方法是在Windows上执行该操作?
Roee Gavirel '17

6
实际上,@ sigi我的回答确实是有帮助的。据我了解,该问题的主要目标是使用Windows计算机上现有的.ppk文件将Mac连接到Linux服务器。考虑到问问者可以访问Windows计算机的问题,然后将.ppk文件转换为.pem文件,然后再将其复制到Mac,与将其复制到Mac并在那里进行转换一样有效。我建议采用这种方法,因为有些人可能不希望在Mac上不安装他们原本不需要的其他软件。
dasfrosty

3
出于正当防卫的原因,此答案非常有帮助:有人将Windows操作系统和现有的ppk文件从Mac迁移到Mac,而不是出于无特定目的在Mac上安装PuTTY,而更希望从Windows导出。这正是我选择要做的。
trevorsky '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.