hadoop“权限被拒绝(公钥、密码、键盘交互)”警告

krcsximq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(5)|浏览(1088)

我按照这个教程在我的计算机上安装hadoop。完成安装后,当我尝试使用以下命令启动hadoop时 ./start-dfs.sh ,它返回以下内容:

U:sbin U$ ./start-dfs.sh
Starting namenodes on [localhost]
localhost: U@localhost: Permission denied (publickey,password,keyboard-interactive).
Starting datanodes
localhost: U@localhost: Permission denied (publickey,password,keyboard-interactive).
Starting secondary namenodes [U.local]
U.local: U@pc.local: Permission denied (publickey,password,keyboard-interactive).
2018-02-25 14:52:15,505 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

我试着卸载和安装它好几次,以重新检查如果我错过了一些东西,但我仍然不断得到这个错误在最后。在浏览了一些在线论坛后,我发现最后一个警告: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform 这不是什么大问题,因为当我们在64位机器上运行hadoop时,它会产生错误。你能告诉我另外两个错误是什么意思以及如何修正它们吗?我尝试过许多在网上发布的解决方案。

y0u0uwnf

y0u0uwnf1#

对于那些还在为这个错误挣扎的人,我的回答可以帮助他们。如果您做的一切都是正确的,并且已经在authorized\u keys中添加了密钥,那么您所需要做的就是删除您的id\u rsa和id\u rsa.pub(无论您在keypair文件中使用了什么名称)并清空您的authorized\u keys,简言之,只需回滚,因为您可能在生成rsa密钥时提供了密码。
所以只需做一件事,通过以下方式再次创建rsa密钥:

ssh-keygen -t rsa

给出文件名(出现提示时):<your\u filename>
然后不要给它一个密码短语,而只是简单地按回车键,也就是说,将其留空,这样您就永远不会看到权限被拒绝的错误(在我的情况下它是有效的)

u0njafvf

u0njafvf2#

cd hadoop/etc/hadoop
nano hadoop-env.sh

并将这一行粘贴到hadoop-env.sh中

export HADOOP_SSH_OPTS="-p 22"
2eafrhcq

2eafrhcq3#

继续执行以下步骤:
生成新的keygen。

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

注册密钥生成:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5w9g7ksd

5w9g7ksd4#

问题是,当您尝试ssh到服务器(在本例中是localhost)时,它会尝试使用您的凭据对您进行身份验证。并储存这些信息。但是这里没有配置无密码身份验证,所以每次尝试ssh时,它都会要求您输入密码,如果 machines try to communicate with each other 使用ssh。所以要设置无密码ssh,我们需要将用户机器的公钥添加到服务器机器 ~/.ssh/authorized_keys 文件。在这种情况下,两个系统是相同的机器。
长话短说,执行以下命令。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ohtdti5x

ohtdti5x5#

我执行了以下3个步骤来创建无密码登录
ssh keygen-t rsa(每行按回车键)
cat~/.ssh/id\u rsa.pub>~/.ssh/authorized\u密钥
chmod og wx~/.ssh/授权的\u密钥

相关问题