1

我在 Ubuntu 操作系统上配置 hadoop。我需要创建 RSA 密钥对以允许 hadoop 与其节点交互,所以我运行以下命令:

hadoop@ubuntu:~$ ssh-keygen -t rsa -P ""

然后我得到这个:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Could not create directory '/home/hadoop/.ssh': permission denied.
Enter passphrase (empty for no passphrase ):
Enter same passphrase again:
open /home/hadoop/.ssh/id_rsa failed: No such file or directory.
Saving the key failed: /home/hadoop/.ssh/id_rsa.
4

4 回答 4

6

忘记在家中创建.ssh目录?

试试看:

mkdir -p ~/.ssh

然后重新运行 ssh-keygen。

也可能你从错误的用户那里创建了 ssh-keys。你使用 sudo 启动了那个 shell?

尝试手动设置 HOME 目录或在提示符中输入正确的路径。

于 2013-04-07T08:03:13.967 回答
1

检查您的主目录名称和权限

             echo $HOME
             cd ~ ; ls -l 
             ls -l .ssh
             ls -lR .ssh

如果上面的输出没问题并且你有正确的权限,也许你的配额已满

尝试使用“sudo”,看看会发生什么......

于 2013-04-07T09:14:57.070 回答
0

似乎当前用户不拥有主目录下的内容。

获得所有权如下图所示:

admin@mydb22-02:~$ sudo chown admin.admin /home/admin/
admin@mydb22-02:~$ ls -la
total 32
drwxr-xr-x 2 admin admin 4096 Nov  3 23:29 .
drwxr-xr-x 3 admin admin 4096 Dec 23  2012 ..
-rw------- 1 admin admin  191 Feb 13  2013 .bash_history
-rw-r--r-- 1 admin admin  220 Apr  3  2012 .bash_logout
-rw-r--r-- 1 admin admin 3486 Apr  3  2012 .bashrc
-rw-r--r-- 1 admin admin  675 Apr  3  2012 .profile
-rw-r--r-- 1 admin admin    0 Nov  3 23:29 .sudo_as_admin_successful
-rw------- 1 admin admin 4221 Nov  3 20:31 .viminfo

生成密钥现在可以工作,因为在生成非对称密钥后,.ssh 目录现在将由当前用户创建和拥有

于 2013-11-03T23:51:17.850 回答
0
我在这上面花了大约 1 小时,终于得到了解决方案。这是由于权限问题。您必须为您的“hadoop 用户”使用 chown。

1.首先制作hadoop目录。
光盘 /home
mkdir hadoop
然后检查'ls -l'。它给出的结果如下:
drwxr-xr-x 2 hadoop hadoop 4096 八月 22 22:17 hadoop

2. sudo chown hadoop.hadoop /home/hadoop/
3. 然后为密钥生成器运行剩余命令。
于 2015-08-22T17:04:08.970 回答