我正在尝试使用Digital Ocean设置云托管。
请跳过带有星号(***)的粗体部分以了解实际问题。这里下面的所有内容都是背景信息。
我需要生成一个RSA密钥对,所以我导航到我的cd ~/.ssh/
目录,然后:
ssh-keygen -t rsa
我已经有了id_rsa
和id_rsa.pub
个文件,所以在提示时:
输入要保存密钥的文件(/demo/.ssh/id_rsa):
我输入以下内容来创建一个新对:
~/.ssh/id_cloudhosting
然后我被要求输入密码,我只需按return
以获取“无密码”:
输入密码(无密码短语为空):
我重复上面的确认,最终输出如下(只是一个演示图片):
现在我有两个新文件id_cloudhosting
和id_cloudhosting.pub
我需要将公共文件的内容复制到我的Digital Ocean托管'添加SSH控制台'。我这样做是这样的:
cat ~/.ssh/id_cloudhosting.pub
返回文件的内容:
ssh-rsa
bUnChOFcOd3scrambledABCDEFGHIJKLMNOPQRSTUVWXYZnowIknowmy
ABCnextTIMEwontyouSINGwithmeHODOR demo@a
我将密钥粘贴到我的托管控制台中,并成功保存。
下一步是权限问题的开始: ****************
我需要"spin up a new server" - 他们的文档中的第四步。所以我输入以下内容:
cat ~/.ssh/id_worker.pub | ssh root@[my.hosting.ip.address] "cat >> ~/.ssh/authorized_keys"
应将公钥作为root用户复制到名为authorized_keys
此步骤永远不会被创建,因为我立即要求我的主机密码。我没有创造过一个!我在那时按return
(或输入),所以我在提示时也这样做,并获得权限被拒绝!
root @ [host.ip.address]的密码:
许可被拒绝,请再试一次。
root @ [host.ip.address]的密码:
许可被拒绝,请再试一次。
root @ [host.ip.address]的密码:
权限被拒绝(公钥,密码)。
如何纠正这些被拒绝的权限?
编辑:修正
似乎通过使用非常规(id_rsa
除外)文件,我需要通过执行以下操作明确标识文件:
ssh root@droplet.ip.address -i /path/to/private_key_file
...请确保不要在那里使用public_key_file。我没有从终端连接到服务器。这是在摧毁了我以前的Droplet之后,用新的密钥文件创建了一个新的Droplet,正如@ will-barnwell建议的那样
答案 0 :(得分:1)
假设您已按照链接指南执行第3步,当您从其Web UI创建新服务器时,请使用“添加SSH密钥”选项并选择您之前添加到帐户中的密钥。
实际启动新服务器时,请选择您要使用的密钥 喜欢从“创建Droplet”屏幕安装在您的服务器上。您 可以根据需要选择任意数量的键:
点击SSH密钥后,文字说“你的 root密码将通过电子邮件发送给你“将消失,你不会 收到确认您的服务器已创建的电子邮件确认。
您使用的命令是将ssh密钥添加到预先存在的服务器。从上面的引用来看,我打赌你提示输入的密码在你的电子邮件中。
当您在Digital Ocean(或大多数云托管服务)上创建服务器时,会自动为您生成root密码,除非您使用授权密钥设置服务器。
使用密钥身份验证绝对是一个很好的安全选择,但请务必仔细阅读说明,不要只是复制/粘贴命令,并希望一切顺利。
编辑: OP对该问题的评论进一步阐明了这个问题。
新建议:按照建议打开服务器并设置SSH密钥,如果服务器不接受您的旧SSH密钥并且提示您输入您没有的密码,则该服务器可能无法使用。
小心使用上一个身份验证密钥,在删除旧密钥之前添加一个新密钥。