在Mac Terminal中使用PPK文件连接到通过SSH的远程连接

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

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

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

请注意:我已经使用Windows的私钥/公钥login,所以我不需要使用keygen创build一个新的密钥,我只是想知道如何设置我已经拥有密钥。 (换句话说,我已经拥有服务器上的授权密钥列表,以及公钥和私钥)。

您可以直接从Mac上的terminalssh ,但您需要使用.PEM键,而不是putty .PPK键。 您可以在Windows上使用PuttyGen将.PEM转换为.PPK ,但我不确定其他方式。

您也可以使用putty for mac通过portbrew转换密钥:

 sudo port install putty 

要么

 brew install putty 

这也将安装puttygen 。 要得到puttygen输出一个.PEM文件:

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

一旦你有钥匙,打开一个terminal窗口,并:

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

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

 chmod go-rw privatekey.pem 

将PPK转换为OpenSSh

OS X:安装Homebrew,然后运行

酿造安装腻子

把你的钥匙放在一些目录中,例如你的家庭文件夹。 现在将PPK密钥转换为SSH密钥对:cachingsearch

要生成私钥:

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 

连接到ssh服务器

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

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

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

有一种方法可以做到这一点,而无需在您的Mac上安装腻子。 您可以使用Windows上的PuTTYgen轻松地将现有的PPK文件转换为PEM文件。

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

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

 chmod 400 <private-key-filename>.pem 

那么你应该可以使用SSH连接到你的远程服务器

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