配置免密通道

假设你有100台机器

怎么方便管理?

免密通道

免除了密码,密钥认证

就是 服务器有一个 know_host 文件,是客户机给的

然后别人又单独给客户机 文件到 ~/.ssh/authorized_keys

实验

首先准备两台虚拟机,ip得不一样

如果一样的ip,那就改一下

怎么改?

静态配置ip

1.进入网卡配置目录
cd  /etc/sysconfig/network-scripts
vim ifcfg-ens33
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens33"
UUID="a4c9218b-351f-4a38-86c0-fde5a5eae387"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.153.132
PREFIX=24
GATEWAY=192.168.153.2
DNS1=114.114.114.114
2.刷新网络服务
service network  restart

建立免密通道

ssh服务:

  • 1.密码认证 linux系统的用户名和密码
  • 2.密钥认证 自己可以去创建密钥对(公钥和私钥)

免密通道的好处: 2台机器之间传输文件或者执行命令,不需要输入密码了

建立免密通道:

2台机器默认是允许root用户登录,打开端口是22号

  • 192.168.153.136 是客户机

  • 192.168.153.132 是服务器

客户机会生成密钥对,公钥和私钥 把公钥传到服务器,对方家目录下

第一步生成密钥

client: 192.168.153.136

server: 192.168.153.132

单向信任关系: 客户机连服务器不需要密码的,而服务器连客户端是需要密码的

双向信任关系

1.在客户机上使用root用户登陆

[root@client ~]# ssh-keygen

注意,不要设置密码

生成公钥和私钥对, .pub是公钥

[root@client ~] ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:OUndj6nIvL0aBjnw+zim0/75pVbkECrkQ8VarXKomWE root@gh-mysql
The key's randomart image is:
+---[RSA 2048]----+
|       o..       |
|      o o.o.     |
|    .+ +.o...    |
|    EoBo+o. .+   |
|   . ===S  +o .  |
|    +  * o .o    |
|     .. * ...    |
|    . ++ =.o     |
|    .=oo*+=.     |
+----[SHA256]-----+
[root@gh-mysql ~]# 
第二步上传公钥到服务器

ssh-copy-id 命令会自动将公钥上传到服务器的/root/.ssh/authorized_keys


[root@client .ssh] ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.153.136
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.153.136 (192.168.153.136)' can't be established.
ECDSA key fingerprint is SHA256:BpqnG1d3hTAphyRWusCZhCBVGGzjgeVhQjVeytO6w0I.
ECDSA key fingerprint is MD5:bf:0d:37:bb:0c:01:ac:d6:33:03:c2:9a:a7:71:29:5c.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.153.136's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.153.136'"
and check to make sure that only the key(s) you wanted were added.



[root@client .ssh]# 

接着在服务器上就会产生对应的公钥

[root@mysql-2 ~] cd /root/.ssh/
[root@mysql-2 .ssh]# ll
总用量 4
-rw------- 1 root root 395 1128 17:07 authorized_keys
[root@mysql-2 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5ikCHTYWpnlY3nXJq1T7oKUhAhsdfvzZ8WUo1noRE8qqg5h8Yw8bcokqo6sPnsIR3YfInQPNT2csV6aPdkWWJnRyYmzGWcjGIlz/fqMXYNyUgVIgIelc/ceqd0r1N11LLPT+yIFfeqNvzm5QXafjKtS1zFQE2uxs7s3n4bboUtWtxCVFszHOmEixdicMTBCsRM6LthqK8Sh3lbKNovn6xNMbvmv5n/+30PECvdxMIvPWSufNYMGWH+Ghgshh7MrN/OFJh5FqvVepRlmO7rVpeeU6jFl6uKIm023lC4DwsGnAwjvIkgO/aKavECF1ZMBcF5ANpNXttPOMsMXCSuxu7 root@gh-mysql
[root@mysql-2 .ssh]# 


测试登陆

测试密钥认证,免密通道是否创建成功

直接进入

[root@client .ssh] ssh 'root@192.168.153.136'
Last login: Tue Nov 28 16:33:17 2023 from 192.168.153.1
[root@mysql-2 ~]# 

利用scp去传递文件(计划任务)

每天的晚上2点30分钟备份所有的数据库,然后scp到备份服务器上

[root@mysql-2 backup]# vim backup_db.sh
[root@mysql-2 backup]# cat backup_db.sh 
#!/bin/bash

#导出数据
mysqldump -uroot -p'Sanchuang123#' --databases wangshuai >/backup/$(date +%F)_wangshuai.sql

#scp到远程的备份服务器
scp /backup/$(date +%F)*_wangshuai.sql root@192.168.153.132:/backup


[root@mysql-2 backup]# 
[root@mysql-2 backup] crontab -e
30 2 * * * bash /backup/backup_db.sh

[root@mysql-2 backup] crontab -l
30 2 * * * bash /backup/backup_db.sh
[root@mysql-2 backup]# 

crontab -e 是创建计划任务

30 2 * * * 30是三十分钟 2是凌晨2点 *是那一天 *是哪个月 *是哪周
crontab -l 是查看计划任务

rsync的使用(下一篇细讲)

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。已支持跨平台,可以在Windows与Linux间进行数据同步。

管100台怎么办搞

建立单向的免密通道

写好脚本发过去就可以了

要想ssh控制的好,先建立免密通道

[root@server .ssh] ssh 'root@192.168.209.145' mkdir /gaohui
[root@server .ssh] scp /etc/passwd root@192.168.209.145:/tmp
passwd                                                       100%  846   859.6KB/s   00:00    
[root@server .ssh]# 

authorized_keys

存放别人的公钥的

know_host

是我们连别人的时候用的

日志文件

在 /var/log/secure 里面

思考

  • 如果ssh服务使用别的端口,例如: 2255端口,是否建立免密通道?

  • 是否可以不使用root用户?

可以 根本不影响

建立免密通道有什么好处

方便使用脚本去执行命令或者传输文件,不需要输入密码,非常快捷和方便

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不冤不乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值