使用 PPK 和 SSH 时,Mac 终端不断要求输入密码

Posted

技术标签:

【中文标题】使用 PPK 和 SSH 时,Mac 终端不断要求输入密码【英文标题】:Mac Terminal Keeps Asking for Password When Using PPK with SSH 【发布时间】:2012-03-12 02:38:57 【问题描述】:

我正在尝试通过 Mac 终端连接到 Amazon EC2 服务器。我有一个没有附加密码的 PPK 文件,但是当我尝试连接时,我得到一个弹出框,上面写着“输入 SSH 私钥的密码”。

所以我们尝试创建一个有密码的 PPK - 但它不接受密码,它仍然拒绝连接。

我有一个 Windows 用户能够在 Putty 上使用相同的 PPK 进行连接。

有人遇到过这个问题吗?

【问题讨论】:

【参考方案1】:

mac 正在寻找 .pem 密钥。 ppk 是专门为 putty 生成的。如果您没有原始 ppk 密钥。

从http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载 puttygen.exe 然后转到转换 -> 导出 OpenSSH 密钥。将输出保存为 .pem 文件并尝试在 mac 上使用它。

如果这不起作用,您可以发布您从 mac 运行的命令。可能你有一些额外的参数或其他东西。

【讨论】:

另外一些 ppk 密钥受密码保护,这可能也是他们所指的。 感谢您的回复,但无论我使用 .ppk 还是 .pem,我都会收到相同的“输入 SSH 密钥的密码”弹出窗口 使用puttygen,导入已有的ppk文件。输入我选择的密码,并保存为 openssh 密钥(使用上面列出的过程)。 ssh -i user@server ... 提示输入密码。进入我选择的那个。工作!谢谢 你是正确的。但是对于 Mac OS 安装腻子(通过 brew 为我)并运行命令 puttygen myppkey.ppk -O private-openssh -o mypemkey.pem 我遇到了与描述完全相同的问题,这个解决方案对我有用!!!!!!谢谢!!!!【参考方案2】:

也许您的问题在于您的密钥的权限。我知道在 linux 中需要更改权限。

取自网站http://om4.com.au/ssh-rsa-key-pairs-passphrases-leopard/

    清空你的~/.ssh目录的内容,设置目录权限为700(目录需要“可执行”) $ rm ~/.ssh/* $ chmod 700 ~/.ssh

    生成您的 rsa 密钥对(这有一些变化,但这是我使用的版本): $ ssh-keygen -t rsa

    将 ~/.ssh 中所有文件的权限设置为 600 $ chmod 600 ~/.ssh

    将 id_rsa.pub 密钥复制到服务器的 .ssh/authorized_keys 文件中

    使用以下命令将您的密码短语添加到您的钥匙串中: $ ssh-添加 -K (您将看到 Enter passphrase for [your system]/.ssh/id_rsa: )

【讨论】:

将目录权限设置为 600 会有效地将其作为目录关闭。它就像你里面根本没有钥匙一样。你的意思是让我们 chmod 700 .ssh/ 和 chmod 600 它的内容? (OS X 10.10.5 Yosemite) - ssh-add 命令可能会给你错误Illegal option -K,你需要使用/usr/bin/ssh-add -K ~/.ssh/id_rsa - 有两个不同的版本(具有完全不同的小写和大写 K 选项)并且只有 /usr/bin 中的一个将您的密码永久存储在您的钥匙串中 - 否则当您注销或重新启动时,它会再次忘记它(这是 Linux 系统上的故意安全性。)要验证永久存储,请打开 KeyChain Access 应用并搜索“id_rsa”,它应该会立即显示。) @JamesTomasino 我编辑了帖子以更正目录权限。 不要建议人们清除 ~/.ssh ,实际上有人会丢失密钥。只需更改文件和目录的权限即可。 我只需要最后一个允许我将通行证添加到我的钥匙串的命令。我建议您先尝试一下,因为它可以让您保留现有的密钥。【参考方案3】:

错误Enter your password for the SSH key x 可能是由于在 ssh 或 sftp 中使用了错误格式的密钥(例如 ppk 密钥)。这是因为它被解释为加密的 ssh 密钥,因此会提示输入密码,而实际上没有密码。

在 OS X 中,我只需在命令行中键入以下内容即可模拟此错误:

sftp -o IdentityFile=randomtextfile mysftpserver.com

解决方案是按照 bwight 的建议使用 puttygen 转换文件。

【讨论】:

【参考方案4】:

除了其他答案之外,问题可能来自您没有指定要连接的用户。

例如,ssh -i francky.pem 208.52.170.43 会在 Mac 上询问您的密码,而 ssh -i francky.pem root@208.52.170.43 不应该。请注意,在 Linux 上您不指定用户。

【讨论】:

【参考方案5】:

我在 MAC 中遇到了完全相同的问题,我找到了一种非常简单的方法来解决它。 不要使用 ssh -i IP 地址,而是使用以下命令> ssh 用户@IP

希望您在这么长时间后已经找到了答案:)

【讨论】:

【参考方案6】:

就我而言,问题在于文件的中断类型。试试这个:

1.- 使用 TextWrangler 打开 .pem 文件

2.- 在应用程序底部,验证中断类型是否为“Windows(CRLF)”。

【讨论】:

【参考方案7】:

这个问题让我把头发拉了 20 分钟左右。意识到我能够从另一个终端窗口成功连接。就我而言,我只需要关闭当前终端窗口并使用另一个或新窗口。很奇怪,但可以帮到你。

【讨论】:

以上是关于使用 PPK 和 SSH 时,Mac 终端不断要求输入密码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SSH 和 MAC OS X 终端跨计算机复制文件 [关闭]

如何使用 ppk 公钥通过 python Paramiko 进行 ssh 连接

从 PPK 文件创建 PEM [重复]

终端中ssh主机的mac自动完成

如何在 ubuntu 终端的共享主机中连接 SSH 服务器?

tortoisegit添加ssh key,生成ppk私钥