我遇到了一个奇怪的问题。我正在使用 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 OpenSSH
PuttyGEN 并从中导出您的私钥。
答案2
尝试使用:
sftp -i "<location-of-key>" [email protected]
从手册页中:
-i 身份文件
选择从中读取公钥认证身份(私钥)的文件。此选项直接传递给 ssh(1)。