我正在尝试使用公钥和私钥机制对机架空间中的 Cloud 服务器(运行redhat)进行无密码ssh连接 .
我的命令是(在服务器中):
-
adduser -g root
-
mkdir /home//.ssh
-
将我的公钥复制到/home//.ssh/authorized_keys
-
chmod 700 /home//.ssh
-
chmod 600 /home//.ssh/authorized_keys
在rackspace Cloud 中的服务器配置文件中:
-
RSAAuthentication是的
-
PubkeyAuthentication是的
-
#AuthorizedKeysFile .ssh / authorized_keys
当我尝试“ssh -i my_priv_key @server_ip”时,它失败并要求我输入@server_ip的密码 .
当我将以下行添加到服务器上的sshd_config时,它表示权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic) .
匹配用户密码验证号
我在过去几个小时里一直在努力,但我无法弄明白 . 所以任何想法如何解决这个问题 .
3 回答
对于使用Rackspace API进行自动化,您不希望向您显示将您的SSH密钥放在服务器上的情况 . [1398545]例如,如果你正在使用pyrax:
您的API密钥位于“ Cloud 控制”面板中的“设置”和“联系人”中,位于安全问题下方:
构建服务器后,您应该能够获取IP地址
然后使用您指定的密钥以root身份ssh .
如果Python不是't your preferred language, there are other options. You can also make direct requests/use curl if that'你的东西,因为这是Rackspace API和OpenStack/nova proper的一部分 .
您是否检查了服务器上的权限和时间设置 . 此外,你有意删除帖子中的用户名 .
尝试使用-v选项执行ssh . 这将为调试提供更多输出 .
我发现在远程服务器上设置SSH密钥的最简单方法是使用ssh-copy-id命令 .
http://linux.die.net/man/1/ssh-copy-id