ssh远程登录协议

一,   ssh服务基础知识

(一)什么是SSH服务器

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。

SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

被连的是服务机  常用端口号为tcp22

如果你作为zhangsan用户去连接对面服务端的话,那么对面也要有个zhangsan用户

(二)ssh  服务有点(区别于talent)

  • 数据传输是加密的,可以防止信息泄漏

  • 数据传输是压缩的,可以提高传输速度

(三)常见ssh  协议


openssh  centos7  上自带的软件 帮助我们实现远程连接
OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
执行"systemctl start sshd"命令即可启动sshd 服务
sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)ftp  20 21

ssh_config和sshd_config都是ssh服务器的配置文件,

ssh_config是针对客户端的配置文件,

sshd_config是针对服务端的配置文件。

(四)ssh 常见文件位置

服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_config

/etc/ssh  放的公钥和私钥文件

~/.ssh    当使用ssh后,客户机在~/.ssh   文件夹中会生成    known-hosts  

这是公钥的合集

(五)ssh原理

1,公钥传输原理

ssh远程登录协议_第1张图片

  • 客户端发起链接请求

  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

  • 客户端生成密钥对

  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

  • 客户端发送加密值到服务端,服务端用私钥解密,得到Res

  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

2,ssh加密通讯原理

 (1)对称加密


1、概念
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用

2、常用算法
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

3、特点
1、加密方和解密方使用同一个密钥;
2、加密解密的速度比较快,适合数据比较长时的使用;
3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

4、优缺点
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

(2)非对称加密


1、概念
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2、常用算法 

- RSA(RSA algorithm):目前使用最广泛的算法
- DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快
- ECC(Elliptic curve cryptography,椭圆曲线加密算法)
- ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

3、原理
首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求

用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

5、优缺点
相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

客户机连服务机,客户机发送数据加上服务机的公钥进行加密   所以客户机~/.ssh 目录下会有服务机的公钥

服务机收到数据后,用自己的私钥来打开文件

二,ssh  生产环境使用出现的情况

(一)怎么确定我要连的是 真正的服务机

客户机连到服务机后,客户机的~/.ssh   文件下的公钥合集,能看到对应服务机的公钥

我们再去到服务机,ssh 127.0.0.1      连接自己,看公钥,对比两边的公钥 

(二)同一ip  换了机器后ssh连不上

192.168.217.99这一台机器年久失修,采购新的机器ip 也叫99   ssh是连不上的

因为两台电脑公钥不一致。现在需要把 客户机里99原来的公钥文件删了,让新的99和客户机相当于第一次配对

我们去到客户机   ~/.ssh  文件夹中的公钥合集过滤出99  机器的公钥,并删除

三,ssh  选项

(一)指定登录账户  -l

ssh远程登录协议_第2张图片

 ssh远程登录协议_第3张图片

 (二)指定端口号 -p

因为默认端口是22   所以正常不用加 -p 选项

      改端口号

此处拓展一个生产环境中的安全加固

服务机最好把ssh  的22端口号改掉,防止被暴力远程连接,多次试密码

打开

ssh远程登录协议_第4张图片

 将端口号改成5927

ssh远程登录协议_第5张图片

这下ssh   必须指定5927 的端口了

ssh远程登录协议_第6张图片

(三)跳板机 -t

此命令用于       服务机前有多台跳板机(多发生在政府机关或者保密性质的单位)

可以一条命令直接到最后的服务机

ssh远程登录协议_第7张图片

(四) ssh 直接接命令

ssh远程登录协议_第8张图片

四,ssh 配置文件常用改变

(一)把客户端 yes 去掉

改客户端配置文件客户端配置文件:/etc/ssh/ssh_config

将35行    的ask  改成no

ssh远程登录协议_第9张图片

五,ssh 安全加固

  1. 建议使用非默认端口 22

  2. 禁止使用protocol version 1

  3. 限制可登录用户 白名单

  4. 设定空闲会话超时时长

  5. 利用防火墙设置ssh访问策略

  6. 仅监听特定的IP地址 公网 内网

  7. 基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs

  8. 使用基于密钥的认证

  9. 禁止使用空密码

  10. 禁止root用户直接登录

  11. 限制ssh的访问频度和并发在线数

  12. 经常分析日志 分离

(一)服务机禁止root  用户连接

改服务端配置文件:/etc/ssh/sshd_config 

将 yes 改为no

ssh远程登录协议_第10张图片

但是这样,有漏洞,就是先登其他账户,再用 su 命令切 root 用户

不允许切换root用户可以将wheel组注释解掉

只有wheel 组里的才能用 su

ssh远程登录协议_第11张图片

(二)服务机黑白名单

白名单:默认拒绝所有,只有允许的人才可以访问  (生产环境用白名单安全级别更高)

黑名单: 默认允许所有, 只名单上的 才不允许

1,白名单:

ssh远程登录协议_第12张图片

只允许 192.168.91.100 来登录 服务机的张三账户

允许 所有ip 来登录 服务机的李四账户

2,黑名单

(三)禁用反向 dns

(如果有一天 登ssh 很慢很慢)

改成no

(四)监听

监听 (相当于白名单)

监听和白名单的区别:

监听在网卡这边就识别了        白名单还需要去读配置文件

ssh远程登录协议_第13张图片

六,ssh 免交互

ssh-keygen

ssh远程登录协议_第14张图片

将公钥发给   服务机

ssh远程登录协议_第15张图片

ssh  直接就连上了

ssh远程登录协议_第16张图片

有密钥文件 但是不想输密码

不验证密码,使用免交互登录的话,输入ssh-agent  bash将ssh-agent交给bash管理

ssh远程登录协议_第17张图片

再输入ssh-add将用户私钥添加到运行中的ssh-agent中,后续的远程连接ssh,就不需要每次都输入密码并验证。一旦私钥被添加到ssh-agent中,它会暂时保存解密后的私钥方便后续使用

ssh远程登录协议_第18张图片

七,同时操作多台机器pssh

1,下载额外元

ssh远程登录协议_第19张图片

2,yum install pssh -y

3,-i 显示过程

你可能感兴趣的:(ssh,tcp/ip,网络)