我在测试AWS环境中有两个Ubuntu实例(A,B)。我正在使用的应用程序使用rsync命令将文件从A移动到B,因此为了做到这一点,我通常(本地Vagrant)有一个脚本使用ssh-copy-id来复制A'公共密钥到B. rsync发生在A的后台,因此它的本地用户将是" root",但转移到标准" ubuntu"用户在B。
这在我的开发平台上完全没有问题,尽管我不会在开发平台上使用公钥进行SSH访问,也不会使用不同的用户名来获取凭据。
在AWS中,我了解情况稍有不同,我的服务器的默认用户名是" ubuntu"等等,但我仍然无法让A的根公钥在B上正常工作。
这就是我正在做的事情(请注意我使用root用户和非root用户时的前缀):
serverA:# ssh-keygen -f ~/.ssh/id_rsa -P "" -b 1024 -C ""
serverA:# more /root/.ssh/id_rsa.pub
(将内容复制到剪贴板)
serverB:$ vi ~/.ssh/authorized_keys
(将内容粘贴到文件末尾)
serverB:$ sudo service ssh restart
在这一点上,我的印象是所有人都应该在服务器A上工作,我至少尝试SSH连接:
serverA:# ssh ubuntu@serverB_ip_address
我已经更新了安全组,因此系统会提示我确认指纹,但我仍然会这样做:
Permission denied (publickey).
谁能看到我在这里做错了什么?