我们一直在尝试使用opennebula来模拟群集,但ssh让我们发疯。 对于一些仍然未知的原因,用户oneadmin(由opennebula创建)必须能够ssh到本地主机。 opennebula的“home”目录(由它创建)是/ var / lib / one,在“one”里面我们可以找到.ssh目录。所以这就是我现在所做的:
sudo -su oneadmin
oneadmin@pc:$ cd /var/lib/one/.ssh
oneadmin@pc:/var/lib/one/.ssh$ ssh-keygen -t rsa
oneadmin@pc:/var/lib/one/.ssh$ cat id_rsa.pub >> authorized_keys
此外,我已经更改了所有权限:所有文件和目录都有oneadmin作为所有者和600(我可以从opennebula指南中读取)
最后,从根,我做
service ssh restart
然后我再次从一个终端登录为oneadmin但是当我执行时:
ssh oneadmin@localhost
这是我得到的
Permission denied (publickey).
我在哪里犯了这个该死的错误?我们已经失去了超过一天的所有这些权限!
答案 0 :(得分:0)
我遇到了类似的问题 - 结果证明Open Nebula没有使用selinux。
最后在这里找到了解决方案 - http://n40lab.wordpress.com/2012/11/26/69/ - 我们需要将上下文恢复为〜/ .ssh / authorized_keys:
$ chcon -v --type=ssh_home_t /var/lib/one/.ssh/authorized_keys
$ semanage fcontext -a -t ssh_home_t /var/lib/one/.ssh/authorized_keys