免密码访问

环境: window、centos7、vm
工具: 终端
目标: 实现window访问master/nginx1/nginx2; master访问nginx1/nginx2; nginx1/nginx2访问master免密码;nginx1与nginx2互相访问免密码。
实现: ssh命令可以远程访问某台设备, 但是需要输入密码; 我们要实现的就是无需密码访问
分析: A设置如果想无密码访问B设备, 只需把~/.ssh/id_rsa.pub放到B设备的~/.ssh/文件夹下, 拼接到autorized_keys文件中

1.生成公钥私钥

指令: ssh-keygen

然后把这个指令在两个虚拟机上分别执行一次

  1. 进入.ssh,切换目录到~/.ssh下
    指令: cd ~/.ssh

3.看主机,ls,查看是否出现了authorized_keys

4.ssh-copy-id 另一台的pid地址 — ssh-copy-id 192.168.235.130
5.ssh 192.168.80.129
6.ip a
以上步骤两台都需要进行,写入第6)步将会进入第二台,查看ip确定,最后exit退出第二台

使win主机能免密码登录:
ssh-copy-id 本虚拟机的pid — ssh-copy-id 192.168.235.129
ssh 本虚拟机的pid

  1. 把 id_rsa.pub 文件发送到三个虚拟机上,

指令: scp id_rsa.pub luds@master:~/.ssh/

指令: scp id_rsa.pub luds@slave0:~/.ssh/

指令: scp id_rsa.pub luds@slave1:~/.ssh/


以下是另一种:

环境: Mac OS

工具: 终端

目标: 实现mac访问master/slave0/slave1; master访问slave0/slave1; slave0/slave1访问master免密码

实现: ssh命令可以远程访问某台设备, 但是需要输入密码; 我们要实现的就是无需密码访问

分析: A设置如果想无密码访问B设备, 只需把~/.ssh/id_rsa.pub放到B设备的~/.ssh/文件夹下, 拼接到autorized_keys文件中

准备工作: 把master和slave0/slave1添加到hosts文件中

指令: sudo vi /etc/hosts

添加如下代码

  1. mac 访问 master

生成公钥私钥

指令: ssh-keygen

然后把这个指令在mac和三个虚拟机上分别执行一次

  1. 切换目录到~/.ssh下

指令: cd ~/.ssh

  1. 把 id_rsa.pub 文件发送到三个虚拟机上, 并命名为 mac.pub

指令: scp id_rsa.pub luds@master:/home/luds/.ssh/mac.pub

指令: scp id_rsa.pub luds@slave0:/home/luds/.ssh/mac.pub

指令: scp id_rsa.pub luds@slave1:/home/luds/.ssh/mac.pub

  1. 远程连接到 master 机器

指令: ssh luds@master

然后输入master机器上luds的密码就可以连接了, 这次访问还需要密码
这里写图片描述
5. 切换到家目录下.ssh文件下

指令: cd ~/.ssh

  1. 新建一个 authorized_keys 文件

指令: touch authorized_keys

把mac传过来的mac.pub文件内容追加到authorized_keys后面

指令: cat mac.pub >> authorized_keys

权限修改:1.chmod 700 .ssh 2.chmod 600 .ssh/*

  1. 退出远程连接的用户

指令: exit

  1. 重新登录远程用户

指令: ssh luds@master

这个时候你会发现: 不需要密码了! 搞定!

finally: 这样, 我们就完成了 mac 访问 master 不需要访问

然后照葫芦画瓢, 再去slave0和slave1上做同样的操作, 把mac.pub文件的内容追加到authorized_keys中

  1. 远程连接到 master 机器

指令: ssh luds@master

然后输入master机器上luds的密码就可以连接了, 这次访问还需要密码

登录成功后, 用户这这样子的:

详情见图:
免密码访问_第1张图片

你可能感兴趣的:(环境部署,linux)