我正在尝试在我的Ubuntu系统上配置Hadoop MapReduce环境。我创建了一个名为hduser
的新用户,并将其放在新组hadoop
下。我创建了一个ssh证书并将其添加到授权密钥中。但每当我尝试连接到本地主机时,我都遇到了麻烦,因为它一直在寻求密码而不是使用密钥身份验证。
我通过将用户hduser
添加到AllowUsers
中的/etc/ssh/sshd_config
列表来解决这个问题。我能够连接到localhost并运行HDFS系统。
现在的问题是,每次关闭Hadoop服务器时,我在hduser
文件中为sshd_config
创建的条目都会被删除。因此,每次在启动Hadoop流程之前,我都必须在sshd_config
文件和reload ssh
中再次输入。有没有办法让这些变化永久化,以便我不必每次都这样做?
我还尝试评论AllowUsers
字段,但每次都会自动取消注释。
谢谢, TM
Edit:
我与系统管理员交谈过,系统范围的配置管理应用程序似乎时不时地更新配置文件。让我的Hadoop用户添加到他们的列表中,现在一切正常。
答案 0 :(得分:1)
您是否执行了以下步骤:
$ ssh-keygen -t rsa -P ''
...
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
...
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost
这些行来自此tutorial
答案 1 :(得分:0)
如何创建shh-keygen以及如何在localhost中复制ssh-copy。 云你做命令并尝试它将运行的hadoop。
ssh-keygen -t rsa
ssh-copy-id -i~ / .ssh / id_rsa.pub $ USER @ hostname
exmp(hostname =您的主机名,如localhost)。然后它会工作。