Linux - SSH免密登录详细步骤
- 为什么要免密登录?
- 免密登录方案
- 添加信任来进行免密登录方法实现
一、为什么需要免密登录
再开发中,我们往往需要进行远程登录服务器进行操作,而每一台服务器都需要设置账号和密码,每一次远程登录的时候我们都需要进行输入密码才能进行操作,但是密码多了之后为了安全我们维护起来会很麻烦,所以设置免密登录之后我们会更方便进行对服务器的管理
二、免密登录的方案
方案一:就是讲账号、密码、IP书写在.sh文件的脚本中。直接运行服务器相关的脚本就行。
方案二:就是设置免密登录(本文讲解的方法)
方案三:其他。。。
三、添加信任来实现免密登录
- 准备阶段
1、需要准备两个Linux环境
2、知道其账号密码
- 步骤一 :在 “/etc/hostname” 中更改当前环境的名称,每一个都要改(原因是避免重复,影响最后的结果)
执行 vi /etc/hostname
进入界面添加(名称) 例:
xx
- 步骤二 :在 “/etc/hosts” 中添加服务器信息(原因是避免每次登录的时候都要输入ip)
执行 vi /etc/hosts
进入hosts的界面添加(ip 名称) 例:
192.168.121.001 master
192.168.121.002 slave1
192.168.121.003 slave1
- 步骤三: 在master生成公钥(有后缀的)和私钥
执行:ssh-keygen -t rsa
如果没生成过,一路按 `Enter` 就好了,
生成成功的界面:
步骤四:查看生成好的密钥,将id_rsa.pub 添加到 authorized_keys中
查看密钥: ls .ssh
将id_rsa.pub添加到authorized_keys中,先进入 .ssh目录
cat id_rsa.pub >> authorized_keys
-
步骤五:每一个环境都需要像上面这样做
-
步骤六:将每一个环境的id_rsa.pub都copy到master中(名字要不一样)
例:我这儿是将slave1 上面的移动到master上面 在slave1上面执行命令
scp /root/.ssh/id_rsa.pub master:/root/.ssh/id_rsa.pub.slave1
期间会输入master的密码
- 步骤七: 完成上述操作之后回到master上面,将其余环境的id_rsa.pub.x 文件全部追加到authorized_keys中
例:我这里是将slave1传过来的 id_rsa.pub.slave1追加authorized_keys上
cat id_rsa.pub.slave1 >> authorized_keys
- 步骤八:将master中生成的authorized_keys文件拷贝到每一个子环境下
例:我这儿是将master 上面的移动到slave1上面
scp authorized_keys slave1:/root/.ssh/authorized_keys
- 步骤九:给每一个环境的私钥添加权限
chmod 600 authorized_keys
这样就可以免密访问了
如果需要退出,直接输入 “exit” 就退出了