安装SSH、配置SSH无密码登录 ssh localhost

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

  1. sudo apt-get install openssh-server
Shell 命令

安装后,可以使用如下命令登陆本机:

  1. ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

有以下两种实现方法:

  一、首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

    1. exit # 退出刚才的 ssh localhost
    2. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
    3. ssh-keygen -t rsa # 会有提示,都按回车就可以
    4. cat ./id_rsa.pub >> ./authorized_keys # 加入授权

  二、 

    1,登录ssh localhost
    2,ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
       cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    3,再次执行ssh localhost

    4,要保证:
    ~/.ssh需要是700权限
    authorized_keys需要是644权限

    chmod 700 ~/.ssh
    chmod 644 ~/.ssh/authorized_keys

    5,此时进入到~/.ssh目录下,会看到多了一个文件know_hosts文件,如下图所示:

    6,退出exit
    重新打开shell

    7,最后ssh localhost验证一下

注:~的含义:在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释。

此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了。

原文地址:https://www.cnblogs.com/news1997/p/9751548.html