0

我们一直在尝试使用 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).

我在哪里犯了这个该死的错误?我们已经失去了超过一天的所有这些权限!

4

1 回答 1

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
于 2014-01-16T23:17:37.017 回答