简化版-思路概要
A机器(192.168.1.100)免密登录到B机器(192.168.1.200),需要在A机器上生成公钥和私钥,并将公钥上传至B机器的/root/.ssh/目录中
A级器执行命令【生成公钥和私钥】:ssh-keygen -t dsa
A机器执行命令【上传公钥到B机器的authorized_keys文件中】(需要B机器的user1密码才行,user1是B机器的用户):ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 22 user1@192.168.1.200"
A机器执行命令【验证是否可以免密登录】:ssh -p 22 192.168.1.200
互相免密登录
一、准备4台Centos7虚拟机
这里分享一些工具
连接Linux工具SecureCRT(免费):链接: 百度网盘 请输入提取码 提取码: 6emz
虚拟机VMware15(非商业用途不需要填注册码,免费): 链接: 百度网盘 请输入提取码 提取码: 8zj6
另外如果想用VMware15高级功能可以参考这里: 百度网盘 请输入提取码 提取码: 9ixd
虚拟机Centos7 镜像ISO(免费):链接: 百度网盘 请输入提取码 提取码: xxsf
顺便介绍个好用的地方,直接用工具的一键发送功能同时发送命令给多台机器:
修改Centos7虚拟机IP地址参考:CentOS7虚拟机配置IP地址
为Centos7安装JDK参考:CentOS7安装JDK
二、配置免密登录
(1)修改用户名及对应的IP
vi /etc/hostname 修改每台机器自身
vi /etc/hosts 修改每台机器把其他机器看成的目标地址和名称
hostname修改: localhost.localdomain四台机器分别改为server1、server2、server3、server4
hosts修改:四台机器的hostname都写上
修改好后需要互相ping一下是否成功,以server1为例:
ping -c 3 server2
命令说明:
linux下的ping和windows下的ping不同,windows 下默认发送四个数据包.linux下ping不会自动终止,需要按ctrl+c终止或者用参数-c指定要求完成的回应次数,在官方 -c<完成次数> 设置完成要求回应的次数,命令格式 ping -c 3 server2 其中的 -c 3 在发送3条数目的包后停止.
如图这说明配置成功了,接下来就是配置免密登录了。
(2)配置免密登录
Server1执行命令:
ssh-keygen -t dsa
在命令执行过程中敲击几次回车,然后会在/root/.ssh文件下生成两个文件id_dsa和id_dsa.pub。
在当前用户(root)目录下查看,ls发现没有我要的东西,数出的日志中看到文件在这里:/root/.ssh/id_dsa.pub,用ls -a 试一下可行,查了一下发现.ssh是隐藏文件。cd /root/.ssh 然后ls就能看到刚刚生成的id_dsa.pub文件了:
看一下id_dsa.pub的内容:
id_dsa的内容:
然后在该文件下建立一个authorized_keys文件,将id_dsa.pub文件内容拷贝到authorized_keys文件中,实现机器的自己对自己免密登录。
cd /root/.ssh 进入./ssh目录
cat ./id_dsa.pub > authorized_keys 新建文件并输入内容
另外三台虚拟机也执行 #ssh-keygen -t dsa操作,并分别将id_dsa.pub内容拷贝到第一台虚拟机的authorized_keys文件中,然后将第一台的authorized_keys文件拷贝到另外三台虚拟机的/root/.ssh/ 下面,实现四台机器的相互免密登录。
直接用工具SecureFXPortable.exe进行复制,操作之前可能一样看不到隐藏文件,需要打开 视图>(.)文件 选项:
server1里面的authorized_keys文件加上其他三台机器的id_dsa.pub之后修改其hostname:
然后再把这个authorized_keys分别复制到其他三台机器,让四台机器的authorized_keys都一样。
最后测试是否配置成功(以server1为例):
ssh server2 (通过命令exit退出)
第一次登陆需要输入yes,之后就不需要了。
如果要避免第一次不用输入yes直接这么连:
ssh server2 -o stricthostkeychecking=no
到此免密登录就完成了
介绍个虚拟机之间相互传送文件的命令scp和rsync:
scp:
scp -r /opt/soft root@server2:/opt/soft server1发送文件夹soft到server2上
-r表示递归
scp -r root@server2:/opt/soft /opt/soft server1向server2拉取数据
rsync:
rsync -rvl /opt/soft root@server2:/opt/soft 将server1的soft下的文件同步到server2下/soft
-r:递归
-v:显示日志
-l:软连接也同步