ssh免密登录设置给出了单机的免密登录和集群的免密登录案例。
一、单机免密登录
1 生成密钥
执行 ssh-keygen -t rsa ( 其中 rsa 是非对称算法)
一路回车到底,生成密钥
且生成之后会在用户的根目录生成一个 “.ssh”的文件夹
2 添加公钥到
将 公钥内容追加到 authorized_keys 中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
或则
ssh-copy-id hadoop001 (前提需要在 /etc/hosts中配置ip映射的主机名,并设置主机名,如 下图)
注意:如果没有配置主机名,则使用IP方式:ssh-copy-id [email protected]
3 进行免密访问
在本机 ssh hadoop001 测试
如果登录失效,则进行4、5、6设置后,再次执行ssh hadoop001 测试。
4 修改 .ssh目录的权限
修改 .ssh目录的权限必须是700
chmod 700 ~/.ssh
5 修改 authorized_keys 权限
.ssh/authorized_keys文件权限必须是600
chmod 600 ~/.ssh/authorized_keys
6 设置设置免密登录失效
设置免密登录后,ssh hadoop001 时候,仍然需要输入密码,则进行一下设置:
vi /etc/ssh/sshd_config
PasswordAuthentication yes
PermitRootLogin yes
PubkeyAuthentication yesRSAAuthentication yes (如果是vagrant则需要在 /etc/ssh/ssh_config 修改 )
重启sshd
systemctl restart sshd
二、集群免密登录
本集群以三台机器为例,三台之间相互免密,三台分别是hadoop001、hadoop002、hadoop003
1、设置映射
hadoop001、hadoop002、hadoop003三台机器分别配置 /etc/hosts 文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.56.128 hadoop001
192.168.56.129 hadoop002
192.168.56.130 hadoop003
2、生成密钥
hadoop001、hadoop002、hadoop003三台机器分别执行:ssh-keygen -t rsa
- hadoop001 执行 ssh-keygen -t rsa
- hadoop002 执行 ssh-keygen -t rsa
- hadoop003 执行 ssh-keygen -t rsa
3、拷贝公钥
hadoop001、hadoop002、hadoop003三台机器都执行以下命令 ,目的是将三台机器的公钥(id_ras.pub)全部拷贝到hadoop001主机上的 authorized_keys 文件中。
- hadoop001 执行 ssh-copy-id hadoop001
- hadoop002 执行 ssh-copy-id hadoop001
- hadoop003 执行 ssh-copy-id hadoop001
此时 hadoop001中/root/.ssh/authorized_keys 已经包含了三台机器的公钥。
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 上执行以下命令,将hadoop001中/root/.ssh/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
评论记录:
回复评论: