SSH 密钥在 Unix 上要求输入密码,但在 Windows 上则不需要

SSH 密钥在 Unix 上要求输入密码,但在 Windows 上则不需要

我遇到了一个奇怪的问题。我正在使用 SSH 密钥连接到我的服务器。我已经生成了公钥和私钥,没有密码,并且我的公钥已安装在我的服务器上。我可以使用私钥从本地(Windows 7)连接到我的服务器,但是当我尝试使用相同的密钥从远程服务器(Linux 到 Unix)连接到我的服务器时,它会要求输入密码。我正在使用以下命令。

sftp -o "IdentityFile=<location-of-key>" [email protected]



 my-local: Window 7
 remote-server: Suse Linux 11 (x86_64)
 my-server: SunOS

答案1

当您从 Linux 连接时,您需要将私钥从 ppk 格式(Windows 程序理解)转换为 openssh 格式。

这个问题的答案在堆栈溢出

你需要:

  • 加载您的私钥后,前往Conversions->Export OpenSSHPuttyGEN 并从中导出您的私钥。

答案2

尝试使用:

sftp -i "<location-of-key>" [email protected]

从手册页中:

-i 身份文件
选择从中读取公钥认证身份(私钥)的文件。此选项直接传递给 ssh(1)。

相关内容