ssh免密登录

单机

1 生成密钥

        执行 ssh-keygen -t rsa ( 其中 rsa 是非对称算法)

        一路回车到底,生成密钥

       且生成之后会在用户的根目录生成一个 “.ssh”的文件夹

ssh免密登录_第1张图片

ssh免密登录_第2张图片

2 添加公钥到

       将 公钥内容追加到 authorized_keys 中:

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

ssh免密登录_第3张图片

      或则 

ssh-copy-id hadoop001  (前提需要在 /etc/hosts中配置ip映射的主机名,并设置主机名,如 下图)

ssh免密登录_第4张图片

ssh免密登录_第5张图片

ssh免密登录_第6张图片

注意:如果没有配置主机名,则使用IP方式:ssh-copy-id [email protected]

修改 .ssh目录的权限

     修改 .ssh目录的权限必须是700

     chmod 700 ~/.ssh

4 修改 authorized_keys 权限

    .ssh/authorized_keys文件权限必须是600

    chmod 600 ~/.ssh/authorized_keys

5 进行免密访问

    在本机 ssh hadoop001 测试

6 设置设置免密登录失效

   设置免密登录后,ssh hadoop001 时候,仍然需要输入密码,则进行一下设置:

vi /etc/ssh/sshd_config
PasswordAuthentication yes   
PermitRootLogin yes
PubkeyAuthentication yes

RSAAuthentication yes (如果是vagrant则需要在 /etc/ssh/ssh_config 修改 )

重启sshd

systemctl restart sshd

集群

本集群以三台机器为例,三台之间相互免密,三台分别是hadoop001、hadoop002、hadoop003

1、三台机器分别配置 /etc/hosts 文件


127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.56.128 hadoop001
192.168.56.129 hadoop002
192.168.56.130 hadoop003

ssh免密登录_第7张图片

2、生成密钥

      三台机器分别执行:ssh-keygen -t rsa​​​​​​​

3、拷贝公钥

      ​​​​​​​三台机器都执行以下命令 ,将三台机器的公钥(id_ras.pub)全部拷贝到hadoop001主机上的 authorized_keys 文件中。

  • ssh-copy-id hadoop001  

4、修改权限(此步根据情况可不执行)

修改  ~/.ssh 权限  和  authorized_keys 权限

 ~/.ssh  默认权限是 700,即 'drwx------.'

 authorized_keys 是600,即 '-rw-------.'

如果权限不是以上权限,则需要执行下面命令修改:​​​​​​​

      三台机器分别修改 ~/.ssh 权限

      chmod 700 ~/.ssh

      修改主机 ~/.ssh/authorized_keys 权限

      chmod 600 ~/.ssh/authorized_keys

5、拷贝公钥

     主机 hadoop001 上分别执行下面命令,将包含三台机器公钥的 authorized_keys 文件分别拷贝到 hadoop002 和 hadoop003

  • scp ~/.ssh/authorized_keys root@hadoop002:~/.ssh/authorized_keys
  • scp ~/.ssh/authorized_keys root@hadoop003:~/.ssh/authorized_keys

6、免密测试

      任何一台机器进入执行下面任意一个,首次执行需要确认 yes

  • ssh hadoop001   
  • ssh hadoop002
  • ssh hadoop003

你可能感兴趣的:(环境-开发工具,ssh,服务器,linux)