ssh-keygen
生成的SSH私钥包含公钥部分。如何从私钥中检索此公钥?我丢失了公共密钥,需要将该公共密钥的内容放入服务器authorized_keys
文件中,并且不想创建新的密钥对。也可以这样说:如何创建
id_rsa.pub
来自id_rsa
文件的文件?#1 楼
我已找到有关服务器故障的答案:从私钥创建公共SSH密钥?选项
-y
输出公共密钥:ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
作为一个补充说明,公钥的注释丢失了。我有一个需要评论的网站(Launchpad?),因此您需要编辑
~/.ssh/id_rsa.pub
并将评论添加到第一行,并在评论和关键数据之间留一个空格。公共密钥的示例在下面被截断了。ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu
对于添加到SSH代理(在后台运行的程序,无需重新启动的程序)的密钥一遍又一遍地输入密钥文件密码短语),可以使用
ssh-add -L
命令列出已添加到代理的密钥的公共密钥(通过ssh-add -l
)。当SSH密钥存储在智能卡上(并且无法访问私钥文件)时,此功能很有用。评论
请注意,您的私钥文件〜/ .ssh / id_rsa必须限制为您的用户名。使用$ sudo chmod 600〜/ .ssh / id_rsa并输入您的根凭据以对其进行限制,然后可以输出公共密钥文件。否则,您将收到不受限制的私钥文件警告。
–马克·米科夫斯基
2015年9月6日在4:30
@MarkMikofski不需要sudo,您应该已经拥有私钥。否则,您将无法首先阅读它。
– Lekensteyn
2015年9月6日于10:28
@Lekensteyn谢谢,您当然是对的!还建议使用400,因为无需写入以键入私钥文件。更正的命令应为$ chmod 400〜/ .ssh / id_rsa
–马克·米科夫斯基
2015年9月6日14:38在
私钥注释丢失。参见stackoverflow.com/questions/38290929/…
–weberjn
18年2月2日在10:07
@weberjn私钥(id_rsa文件)没有注释,但是确实丢失了公钥文件(id_rsa.pub)中的注释。
– Lekensteyn
18年2月2日在10:43
#2 楼
这是一个专门针对使用Windows的SSH用户到其远程计算机(包括Amazon AWS和GCE上的云映像)的用户的解决方案。 GCE上的图像。使用的工具:
puttygen
WinSCP
执行步骤:
使用puttygen生成公钥/私钥对。
将公钥上传到云或远程位置中的服务器。
说明(操作方法) :
生成密钥/对或使用现有的私钥:
如果有私钥:
打开puttygen,请按加载按钮并选择您的私钥密钥(* .pem)文件。
如果没有私钥:
打开Puttygen,
选择所需的密钥类型SSH2 DSA(可以使用RSA或DSA )在“参数”部分...中,将密码短语字段留空很重要,
按“生成”并按照说明进行操作以生成(公共/专用)密钥配对。
创建一个新的“ authorized_keys”文件(使用记事本):
从“公共密钥为粘贴到PuTTY密钥生成器的OpenSSHauthorized_keys文件”部分中,然后将密钥数据粘贴到“ authorized_keys”文件中。
确保该文件中只有一行文本。
将密钥上传到Linux服务器:
打开WinSCP,
选择SFTP文件协议并使用SSH凭据登录。
成功后,您会看到远程计算机上的主目录结构。
将authorized_keys文件上传到远程计算机上的主目录。
设置适当的权限:
.ssh
目录(如果不存在)将
authorized_keys
文件复制到.ssh目录(这将替换任何现有的authorized_keys
文件;请注意)。如果文件存在,只需将该文件的内容添加到现有文件中即可。
运行命令来设置权限:
sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
现在,您将能够在无需每次输入凭据的情况下进入远程计算机。
进一步阅读:
在Windows下生成和上传SSH密钥
使用OpenSSH密钥,证书.pem和.pub
进行无密码身份验证
评论
如果您的主目录已加密,请执行以下操作:askubuntu.com/questions/439184/…
– devprashant
2015年11月21日10:06
尽管您的回答与该问题并非真正相关,但由于您的热情,我投了赞成票。
– Truong Nguyen
16年12月13日在16:53
评论
pbcopy>〜/ .ssh / id_rsa.pub哎呀。@NickT-pbcopy是MacOSX命令。另外,如果您已重新启动,注销或将其他任何内容复制到剪贴板,则没有用。