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

Ana*_*and 130 macos ssh openssh ssh-keys

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

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

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

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

Pur*_*can 341

您可以ssh直接从Mac上的终端,但您需要使用.PEM密钥而不是putty .PPK密钥.您可以在Windows上使用PuttyGen转换.PEM.PPK,但我不确定相反的方式.

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

sudo port install putty
Run Code Online (Sandbox Code Playgroud)

要么

brew install putty
Run Code Online (Sandbox Code Playgroud)

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

puttygen privatekey.ppk -O private-openssh -o privatekey.pem
Run Code Online (Sandbox Code Playgroud)

获得密钥后,打开终端窗口并:

ssh -i privatekey.pem user@my.server.com
Run Code Online (Sandbox Code Playgroud)

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

chmod go-rw privatekey.pem
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用[brew](http://brew.sh/)安装putty:`brew install putty`.请注意,我们在这里没有使用`sudo`;) (22认同)
  • 你需要从HEAD安装brew配方,所以请首先使用'brew uninstall`然后使用`brew install putty --HEAD`.这对我有用. (6认同)
  • 当我尝试运行puttygen命令时,这个错误意味着什么?输入密码加载密钥:断言失败:(random_active),函数random_byte,文件./../sshrand.c,第313行.中止陷阱:6 (3认同)
  • 有用的答案!! 感谢那!!对于那些没有安装端口的人,可以按照以下链接安装git:http://codingsteps.com/installing-and-using-putty-on-mac-os-x/ (2认同)

rin*_*esh 28

将PPK转换为OpenSSh

OS X:安装Homebrew,然后运行

brew安装腻子

将密钥放在某个目录中,例如您的主文件夹.现在将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
Run Code Online (Sandbox Code Playgroud)

连接ssh服务器

ssh -i ~/.ssh/id_dsa username@servername
Run Code Online (Sandbox Code Playgroud)

Port Forwarding连接mysql远程服务器

ssh -i ~/.ssh/id_dsa -L 9001:127.0.0.1:3306 username@serverName
Run Code Online (Sandbox Code Playgroud)


das*_*sty 19

没有在Mac上安装putty,有一种方法可以做到这一点.您可以使用Windows上的PuTTYgen轻松将现有PPK文件转换为PEM文件.

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

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

chmod 400 <private-key-filename>.pem
Run Code Online (Sandbox Code Playgroud)

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

ssh -i <private-key-filename>.pem username@hostname
Run Code Online (Sandbox Code Playgroud)

  • `如果没有在Mac上安装putty,有一种方法可以做到这一点.您可以使用Windows上的PuTTYgen轻松将现有的PPK文件转换为PEM文件.所以在Mac上执行此操作的最佳方法是在Windows上执行此操作?! (7认同)
  • 实际上@sigi我的答案真的是有帮助的.据我所知,问题的主要目标是使用Windows机器上的现有.ppk文件从Mac连接到Linux服务器.鉴于提问者可以访问Windows计算机,然后将.ppk文件转换为.pem文件,然后将其复制到Mac,这与首先将其复制到Mac并将其转换为有效解决方案一样有效.我建议使用这种方法,因为有些人可能不愿意在Mac上安装其他软件,而这些软件并不需要. (5认同)
  • 出于正当防卫的原因,此答案非常有帮助:有人将Windows操作系统和现有的ppk文件从Mac迁移到Mac,而不是出于无特定目的在Mac上安装PuTTY,而更希望从Windows导出。这正是我选择要做的。 (3认同)