第6章 远程管理的介绍

6.1 服务的概念介绍

6.1.1 ssh和telnet服务的相同和不同点

ssh:

  • 服务端口号为22
  • 在数据传输的时候是加密的传输
  • 一般在互联网中使用,可以使用root账号进行登录

telnet:

  • 服务端口号为23
  • 在数据的传输的时候是明文传输
  • 一般在局域网中使用,不可以使用root账号进行登录

6.2 远程服务密码连接的原理

  • 客户端向服务端发送请求建立的连接
  • 服务端向客户端发送确认是建立连接吗(yes/no)
  • 客户端在给服务端发送确认建立连接(yes),并且接收到一个公钥文件,保存到(~/.ssh/known_hosts)文件中
  • 客户端进行密码确认的操作
  • 服务端向客户端发送密码的确认消息,成功则建立连接

6.3 远程服务连接的方式

6.3.1 密码连接

密码连接有风险,第一,密码基本是固定的形式的;第二:密码的难易由密码的复杂度来决定的

6.3.2 密钥进行连接

6.3.2.1 秘钥连接的原理过程

  • 客户端生成一个密钥对信息
  • 客户端将公钥发送给服务端
  • 客户端使用远程连接命令发送,并且请求建立连接
  • 服务端接收客户端的请求,并且发送确认请求
  • 客户端选择(yes),接着会生成一个公钥,保存到~/.ssh/known_hosts文件中
  • 服务端会发送公钥质询信息(验证客户端有私钥可以解密我这个公钥的文件内容吗)
  • 客户端接收质询信息,并且使用私钥进行解密
  • 客户端将结果发送给服务端
  • 连接建立成功

6.3.2.2 管理端创建密钥进行连接

  • -t                        指定密钥的类型(rsa,dsa)
  • -f                        指定密钥的文件名称
  • -C                        指定公钥的内容备注
  • -P                        指定旧的私钥密码
  • -N                        指定新的私钥密码
  • -q                        默认不进行输出

[root@nfs01 ~] # ssh-keygen -t dsa                    密钥创建

Generating public/private dsa key pair.

Enter file in which to save the key (/root/.ssh/id_dsa):             保存密钥的地方

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_dsa.            保存的公钥路径

Your public key has been saved in /root/.ssh/id_dsa.pub.            保存的私钥路径

The key fingerprint is:

SHA256:P4YoWQkaZ2j0Modev90czdp60WWVk9in08MdA0jr44Y root@nfs01

The key's randomart image is:

+---[DSA 1024]----+

| . ....+ o|

| . + ... Bo|

| B B . .oB|

| o X o . .o oo=|

| o + S .oo. +.|

| o + =o+o . |

| o o oEBo.. |

| . ..o. |

| .. |

+----[SHA256]-----+

You have new mail in /var/spool/mail/root

6.3.2.3 分发公钥

6.3.2.3.1 分发公钥的原理
  • 管理端和远程服务器进行连接
  • 连接的时候会将公钥发送给远程服务端的/root/.ssh/ authorized_keys的文件里,并且权限为600
  • 在连接建立的时候,ssh服务会加载authorized_keys的文件里面的密钥信息来建立连接
6.3.2.3.2 分发公钥的操作步骤

[root@nfs01 .ssh] # ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41            将公钥发送给172.16.1.41

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_dsa.pub"

/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@172.16.1.41's password:                 输入172.16.1.41的密码

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'root@172.16.1.41'"

and check to make sure that only the key(s) you wanted were added.

[root@nfs01 .ssh] # ssh 172.16.1.41                    远程连接ssh 172.16.1.41

Last login: Sun Oct 27 20:44:18 2019 from 10.0.0.1

[root@backup ~] #                发现不需要密码就可以连接成功

6.4 利用脚本进行批量的分发

6.4.1 密码和端口都是固定的情况下

for i in 41 7

do

sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no 172.16.1.$i

if [ $? -eq 0 ]

then

echo "172.16.1."$i"发送成功"

else

echo "172.16.1."$i"发送失败"

fi

done

6.4.1.1 ssh批量分发公钥的思路解析

6.4.1.1.1 手动分发公钥

ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.7

6.4.1.1.2 解决需要进行密钥分发的确认信息

ssh 参数-o里面可以指定StrictHostKeyChecking=no来忽略确认,直接将公钥发送过来就可以

ssh -o StrictHostKeyChecking=no        忽略确认,直接将公钥发送过来就可以

6.4.1.1.3 解决输入密码的困境

使用sshpass来忽略

sshpass -p123456                免交互来指定你输入的密码

6.4.1.1.4 将公钥发送的前几个过程连接起来

sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa -o StrictHostKeyChecking=no 172.16.1.7        单个用户直接发密钥的思路

6.4.2 端口和密码不固定的情况下

[root@m01 scripts] # cat different.txt                编写定义IP 密码端口的配置文件

172.16.1.31 123456 52113

172.16.1.41 654321 22

172.16.1.7 123456 22

[root@m01 scripts] # cat different_miyao_fenfa.sh

#!/bin/bash

cat /server/scripts/different.txt|\

while read line                        循环读取

do

IP_INFO="$(echo $line|awk '{print $1}')"                读取第一行,使用awk进行分割,取出IP

PASS_INFO="$(echo $line|awk '{print $2}')"            读取第二行,使用awk进行分割,取出密码

PORT_INFO="$(echo $line|awk '{print $3}')"            读取第三行,使用awk进行分割,取出端口

sshpass -p$PASS_INFO ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no $IP_INFO -p $PORT_INFO &>/dev/null                将IP,密码,端口依次赋值给变量下面进行调用

if [ $? -eq 0 ]

then

echo "Public key distribution success"

echo ""

else

echo "Public key distribution faild"

echo ""

fi

done

[root@m01 scripts] #

6.5 远程服务配置文件

  • 17 #Port 22                            这个是指定ssh端口配置
  • 19 #ListenAddress 0.0.0.0                指定监听的IP地址(这个地址只能是服务器网                                    卡本身拥有的)
  • 64 #PermitEmptyPasswords no            不允许空密码进行连接
  • 38 #PermitRootLogin yes                        禁止root登录系统
  • 79 GSSAPIAuthentication no                    关闭GSSAPI认证,加快ssh的连接
  • 23 UseDNS no                                关闭DNS反向解析 加快SSH连接效率
  • 47 AuthorizedKeysFile .ssh/authorized_keys        存放发过来的公钥认证文件

6.6 远程访问防范入侵方案

  • 使用密钥进行登录系统,别使用密码进行登录
  • 解决ssh安全的问题
    • 防火墙将ssh服务关闭,指定源IP地址限制(只对一些信任公网和私网可以访问)
    • 对服务器的指定IP进行监听(监听的端口只能是网卡里面拥有的)
  • 尽量不给服务器的外网IP(负载均衡是需要外网IP的)
  • 尽量最小化的安装系统
  • 把一些重要的文件进行指纹验证
  • 将一些重要的文件进行加锁来解决

ssh远程管理服务的介绍的更多相关文章

  1. 五.ssh远程管理服务

    01. 远程管理服务知识介绍 1) SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: ...

  2. Linux(11):期中架构(3)--- SSH远程管理服务 & ansible 批量管理服务

    SSH远程管理服务 1. 远程管理服务知识介绍 # 1.1 SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Worki ...

  3. SSH远程管理服务实战

    目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交 ...

  4. Linux系统学习 八、SSH服务—SSH远程管理服务

    1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装 ...

  5. linux运维、架构之路-SSH远程管理服务

    一.SSH服务功能介绍 1.远程登录管理 提供类似telnet远程联机服务器的服务,即上面提到的SSH服务 2.远程传输文件 是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供 ...

  6. Linux下 SSH远程管理服务

    第1章 SSH基本概述 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定 在进 ...

  7. 6. SSH远程管理服务实战

    1. SSH基本概念? ssh是一个应用层安全协议 2.SSH主要的功能是? 实现远程登录, 数据传输过程中进行加密. 钉钉(澡堂模式) 远程登录: ssh telnet 3.SSH与Telnet之间 ...

  8. 6、SSH远程管理服务实战

    1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务. 2.对传输 ...

  9. Linux-SSH远程管理服务实战

    figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...

随机推荐

  1. js获取文件里面的所有文件名

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. tomcat日志(1)

    tomcat日志配置之一自带log 2014-03-19 09:58 33737人阅读 评论(2) 收藏 举报 分类: java(49) 问题 tomcat每次启动时,自动在logs目录下生产以下日志 ...

  3. JS、JQ相关小技巧积攒

    JS.JQ相关小技巧积攒,以备不时之需. 1.js 获取时间差:时间戳相减.new Date().getTime()  获得毫秒数,除以(1000*60*60*24) 获得天数. 2.重定向操作:页面 ...

  4. [ISE调试] 在ISE调试过程中,遇到过的error以及消除办法

    1.Incompatible IOB's are locked to the same bank 15,具体如右图, 于是去查引脚配置,发现 也就是说,在bank=15的这组IO里面,我既选了LVAM ...

  5. 航空概论(历年资料,引之百度文库,PS:未调格式,有点乱)

    航空航天尔雅 选择题1. 已经实现了<天方夜谭>中的飞毯设想.—— A——美国2. 地球到月球大约—— C 38 万公里3. 建立了航空史上第一条定期空中路线—— B——德国4. 对于孔明 ...

  6. 自动安装 linux 系统

    实现自动安装 centos 6 和 centos 7 实现自动安装 Linux 系统需要在虚拟机上安装三个服务:apache .tftp.dhcp 三个服务放在一台虚拟机上即可 一.DHCP 服务器的 ...

  7. [FPGA]Verilog实现8位串并转换器HC595

    目录 想说的话... 正文 IC介绍_HC595 电路连接图 功能表 逻辑图 代码实现 代码已经更新,新的代码按照电路编写,忠实于原电路的逻辑,已注于文末(11/16) 修复并行输出数据出错的bug, ...

  8. 高德JS依赖分析工程及关键原理

    一.背景 高德 App 进行 Bundle 化后,由于业务的复杂性,Bundle 的数量非常多.而这带来了一个新的问题——Bundle 之间的依赖关系错综复杂,需要进行管控,使 Bundle 之间的依 ...

  9. python核心编程笔记(转)

    解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗 ...

  10. Anaconda中启动Python时的错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 553

    今天,在Anaconda prompt启动python遇到了如下错误: UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xaf in positi ...