每次finalShell连接都需要验证
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
sudo apt-get install openssh-server
Shell 命令
安装后,可以使用如下命令登陆本机:
ssh localhost
Shell 命令
此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。
SSH首次登陆提示
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授权
Shell 命令
~的含义
在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释,只需要输入前面命令即可。
此时再用 ssh localhost
命令,无需输入密码就可以直接登陆了,如下图所示。
SSH无密码登录
这里改完密码还是需要
ssh的配置不对,ssh需要开启root用户可登陆的配置:
怎么都进不去(当然前提是:安装ssh服务:sudo apt-get install openssh-server)
解决方法如下:
1、 修改/etc/ssh/sshd_config文件:
其中的修改如下:(把第一个注释掉;把第二个添加上)
2、重启ssh服务
3、再次xshell连接: