远程服务(SSH)部署

远程连接服务

概念介绍

  1. 远程服务可以实现远程连接管理主机
  2. 远程服务可以实现远程下载传输数据

利用SSH telnet服务实现远程连接主机
ssh:加密传输数据方式(安全性更高,复杂性较高),经过互联网连接,访问端口22,默认支持root用户远程连接
telenet:明文传输数据方式(安全性更低,复杂性较低),经过局域网连接,访问端口23,默认禁止root用户远程连接

远程服务连接原理

客户端:发送建立连接通讯请求
服务端:回复密钥确认信息
客户端:进行密钥信息确认
服务端:将公钥信息进行发送传递
客户端:接收公钥进行保存,并发送确认信息(~/.ssh/known_hosts)
服务端:发送密码验证信息(加密处理)
客户端:输入密码信息(加密信息)
数据连接建立完毕
传输数据(加密处理)

远程服务连接方式

  1. 基于密码方式进行远程连接
  2. 基于密钥方式进行远程连接

实现方式:
linux —> linux

  1. 管理端建立密钥对
ssh-keygen -t rsa
  1. 管理端传输公钥信息
ssh-copy-id -i /root/.ssh/id_rsa.pub IP地址
  1. 进行远程连接测试
ssh IP地址
ssh IP地址 命令

windows(xshell) —> linux

  1. 管理端建立密钥对
    在这里插入图片描述
  2. 将公钥信息进行编辑
id_rsa_2048.pub  -信息编辑到-  linux主机authorized_keys
  1. 修改连接会话设置

批量基于密钥连接多台主机

需要解决的问题

  • 如何实现免交互
  1. 连接时输入yes信息
  2. 连接时输入密码信息
  3. 连接时输入端口信息
  • 密码 端口 用户名信息不一致

利用脚本解决问题
编写主机信息文件
IP地址:密码信息:端口信息
IP地址:密码信息:端口信息
IP地址:密码信息:端口信息

编写批量分发公钥文件脚本

#!/bin/bash
for host in $(cat /server/scripts/ip_list.txt)
do
  host_ip=$(echo $host|awk -F ":" '{print $1}')
  host_pass=$(echo $host|awk -F ":" '{print $2}')
  host_port=$(echo $host|awk -F ":" '{print $3}')
  sshpass -p$host_pass ssh-copy-id -i /root/.ssh/id_rsa.pub $host_ip -o StrictHostKeyChecking=no -p$host_port  &>/dev/null
  if [ $? -eq 0 ]
  then
     echo  "to $host_ip distribute_key "
     echo  "public key distribute ok"
     echo  ""
  else
     echo  "to $host_ip distribute_key"
     echo  "public key distribute no"
     echo  ""
  fi
done

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值