我在PuTTY上生成了两个键:公共密钥和私有密钥。在windows上使用这个软件,我可以像往常一样连接到服务器。
然后,我尝试在我的ubuntu机器(21.04)中复制这些文件,并登录到加载私钥(打开putty,编写user@hostname,然后在SSH>Auth加载私钥),但是无法连接被服务器拒绝,因为这个错误说:
Unable to load key file '~/private_key.ppk' (PuTTY key format too new). 一个新兴的窗口似乎在说:
No supported authentication methods available (server sent: publickey)因此,正如第一个错误建议的那样,通过PuTTYgen将私钥转换为openssh格式,然后将该文件加载到SSH/Auth之后,“不支持”消息将保留在前面:
Unable to use key file '~/private_key_openssh' (OpenSSH SSH-2 private key (old PEM format) ).有没有办法在Ubuntu上使用这些密钥?也许是通过露台?
一些有用的信息:
尝试使用ssh -i ~/.ssh/private_key.ppk user@hostname时的输出
Load key“~/..ssh/private_key.ppk”:无效格式user@hostname:权限被拒绝(publickey)。
发布于 2021-09-25 22:40:20
连接已完成!
正如Thomas所建议的,将private_key文件加载到PuTTYgen上并将公钥复制到authorized-keys文件是第一步。
此外,将private_key文件导出为openssh格式(第一个选项)到private_OpenSSH文件,然后将其移到~/..ssh目录中以更改权限:
chmod 400 private_OpenSSH
允许我最终连接到:
ssh -i ~/private_OpenSSH user@hostname
发布于 2022-04-19 14:56:54
Adonis和Thomas的回答/评论基本上是正确的,但缺乏一些我需要的细节,以使它在实践中发挥作用。由于我没有足够的声誉来评论,我将通过这个答案来增加细节。
为此,打开PuttyGen,加载私钥,然后转到“反转”菜单,然后选择“导出OpenSSH键”
上使用OpenSSH键
如果您直接将它用于SSH,您可以像Adonis提到的那样使用它。但是,如果您间接地需要它,例如用于源代码控制系统呢?
将其复制到Linux上的~/..ssh文件夹中。如果您以前没有在Linux上使用SSH,您可能需要创建这个文件夹。当您创建.ssh目录时,您需要chmod 0700 ~/.ssh,以便ssh工具相信这个目录对您来说确实是私有的。
如果您从Windows复制了密钥文件,现在打开一个终端到~/..ssh文件夹,然后运行chmod 400 [private key file name]。这是必要的,因为默认权限(从Windows复制时)将为770;SSH实用程序将告诉您这是太允许的,并且它将忽略键。不幸的是,它没有直接告诉您如何解决问题,但400权限,这意味着“我可读,其他人不可用”,将纠正这个问题。
现在,在终端运行eval $(ssh-agent)。这将打开本地SSH代理,并允许您添加其他程序(如源代码管理)可以获取的密钥。
最后,运行ssh-add ~/.ssh/[private file key name]。只要您记得设置权限,它就会正常工作,并且您应该能够使用git/hg/等等使用SSH密钥。
https://askubuntu.com/questions/1365646
复制相似问题