本文最后更新于:July 9, 2019 pm
K8S部署的前期准备工作,多台CentOS主机之间使用SSH免密登录。
1、实现原理
这里我们需要实现的一共有两个效果,一个是这五台CentOS主机之间任意两台之间都能使用ssh免密登录,另一个就是能够直接使用 ssh hostname
的方式登录而不需要使用 ssh account@ip_addr
的方式登录。
1.1 rsa密钥对
一般来说我们的SSH使用的是RSA类型的密钥对,使用ssh-keygen
默认生成的也是RSA类型的密钥对。一般来说会产生两个文件,分别是id_rsa
和id_rsa.pub
,其中前者是私钥,后者是公钥。私钥不能泄露,而公钥是放置在目标主机的authorized_keys
文件中,从而实现免密登录的效果。
要实现五台CentOS主机之间任意两台之间都能使用ssh免密登录,只需要将这五台主机的id_rsa.pub
都存放到一个authorized_keys
文件中,然后再将这个文件复制到每一台主机上即可。
1.2 hosts文件
CentOS中的/etc/hosts
文件中存放着主机名和对应的ip地址等信息,想要实现直接使用 ssh hostname
的方式登录的效果,只要在hosts文件中添加ip地址和对应hostname(主机名)即可。
2、操作步骤
2.1 安装启用ssh
| sudo yum install -y openssl openssh-server
systemctl start sshd.service systemctl enable sshd.service
|
2.2 生成密钥对
需要注意的是,这里提示输入的passphrase
相当于ssh密钥对的密码,不输入的话直接回车跳过即可,输入了之后,每次使用ssh免密登录的时候会再要求输入passphrase
以保证安全。
| scp /home/tinychen/.ssh/id_rsa.pub tinychen@192.168.100.50:/home/tinychen/.ssh/node5*
cat id_rsa.pub >> authorized_keys cat node51 >> authorized_keys cat node52 >> authorized_keys cat node53 >> authorized_keys cat node54 >> authorized_keys
|
2.3 配置sshd_config
| sudo vim /etc/ssh/sshd_config
|
2.4 编辑hosts
|
sudo vim /etc/hosts
192.168.100.50 master50 192.168.100.51 node51 192.168.100.52 node52 192.168.100.53 node53 192.168.100.54 node54
|
2.5 复制master的配置文件
|
sudo scp /etc/ssh/sshd_config root@192.168.100.51:/etc/ssh/sshd_config sudo scp /etc/ssh/sshd_config root@192.168.100.52:/etc/ssh/sshd_config sudo scp /etc/ssh/sshd_config root@192.168.100.53:/etc/ssh/sshd_config sudo scp /etc/ssh/sshd_config root@192.168.100.54:/etc/ssh/sshd_config
|
| scp /home/tinychen/.ssh/authorized_keys tinychen@192.168.100.51:/home/tinychen/.ssh/authorized_keys scp /home/tinychen/.ssh/authorized_keys tinychen@192.168.100.52:/home/tinychen/.ssh/authorized_keys scp /home/tinychen/.ssh/authorized_keys tinychen@192.168.100.53:/home/tinychen/.ssh/authorized_keys scp /home/tinychen/.ssh/authorized_keys tinychen@192.168.100.54:/home/tinychen/.ssh/authorized_keys
|
2.6 修改ssh文件权限
| sudo chmod 700 /home/tinychen/.ssh/ sudo chmod 600 /home/tinychen/.ssh/*
|
3、验证效果
需要注意的是,第一次ssh登录的时候,因为known_hosts文件里面没有保存这台主机的对应信息,我们需要输入yes才能登录,之后便不再需要。
此外,如果使用ssh+主机名的方式登录,两台主机必须是使用的同一个用户,这里我使用的是tinychen用户,由于我已经在ssh的配置文件中修改了配置允许ssh使用root账户登录,因此这里我们使用管理员账户tinychen,如果有需要了再切换到root账户,保证安全性
4、补充
| rm -rf /root/.ssh/ cp -r /home/tinychen/.ssh/ /root/ chmod 700 /root/.ssh/ chmod 600 /root/.ssh/*
|