• ssh服务


    ssh服务

    一、ssh的介绍

    1、ssh定义:ssh(secure shell)理解是一个协议,使用在linux/unix系统里,远程控制服务器的
    2、centos6/7/8里面安装好系统,默认安装openssh
    ubuntu里默认不安装,需要自己来指定安装

    [root@liuhongjie ~]# rpm -qa |grep openssh
    openssh-clients-8.0p1-5.el8.x86_64		#客户端程序
    openssh-server-8.0p1-5.el8.x86_64		#服务器端
    openssh-8.0p1-5.el8.x86_64				#版本号
    
    rpm是linux里面的一个软件管理的命令
    	在redhat/centos里有使用,
    rpm -qa 查询在本机已经安装的所有软件
    	q	query
    	a	all
    
    安装客户端使用软件openssh
    经常需要给openssh进行升级,保障linux系统的安全:		
    	yum update openssh openssh-clients openssh-server -y
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3、ssh默认监听的端口是:22
    使用的协议是:tcp
    4、如何查看sshd服务是否启动

    	1.看进程-->ps aux|grep sshd
    	2.看端口-->lsof -i:22
    	3.直接访问
    	4.看日志
    
    • 1
    • 2
    • 3
    • 4

    二、ssh原理

    1、数据加密:用来传输数据的时候,对数据进行加密的
    2、算法:

    1.常见的加密算法
    	RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)、 ECDSA
    2.加密算法的分类:
    	对称加密
    	非对称加密(公钥和密钥)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、数字签名:

    1.作用:用来做身份识别
    2.原理:通过产生随机的字符串
    3.具体的流程图:
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    4、认证方式:

    1、密码认证:通过/etc/passwd和/etc/shadow文件
    2、密钥认证
    
    • 1
    • 2

    三、ssh相关配置、文件、故障及命令

    1、ssh相关配置

    1、配置存放的目录:/etc/ssh
    2、相关的配置文件:给进程传递参数的
    	[root@nameserver ssh]# cd /etc/ssh/
    	sshd_config  --》服务器端的配置文件  server   --》进程:sshd 
    	ssh_config --》ssh命令使用的配置文件 client  --》进程:ssh
    	ssh_host_ecdsa_key.pub  --》ecdsa加密算法的公钥
    	ssh_host_ecdsa_key    --》ecdsa加密算法的私钥
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2、ssh相关文件

    1、日志文件:/var/log/secure
    2、know_hosts文件:
    	2.1、产生:客户机使用ssh第一次连接服务器时,将服务器上sshd守护进程的公钥复制到本地
    		存放到本地~/.ssh/known_hosts文件中,每行存放一台服务器的公钥用来验证服务器的身份
    	2.2、作用:数据加密+服务器和客户端身份识别(数字签名)
    	2.3、存放路径:在~/.ssh
    3、authorized_keys文件:
    	3.1、路径:在~/.ssh
    	3.2、作用:用来进行合法身份验证,证明你是linux系统的合法用户,登陆linux使用
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3、ssh相关故障

    1、建议关闭防火墙,并且设置开机不启动
    	systemctl stop firewalld
    	systemctl disable firewalld
    2、建议关闭selinux,并且设置开机不启动
    	2.1、selinux是linux系统里的一套安全机制,用来保护linux系统的安全,
    		会限制进程去做某些对安全有威胁的事情。
    	2.2、临时调整selinux状态
    			[root@localhost ssh]# getenforce  查看selinux的状态
    			Enforcing
    			[root@localhost ssh]# setenforce 0  临时调整selinux的策略为宽容模式
    			[root@localhost ssh]# getenforce
    			Permissive
    	2.3、永久修改selinux的策略为disabled
    			[root@localhost ssh]# vim /etc/selinux/config
    			SELINUX=disabled
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    4、ssh相关命令

    1、ssh命令:
    	1.1、ssh root@192.168.243.132	#使用root用户远程连接192.168.243.132这个服务器
    	1.2、ssh 192.168.243.132			#不指定登陆用户,默认使用当前用户名远程连接
    	1.3、在远程连接的服务器上输入exit即可退出
    	1.4、可以运行远程机器上的脚本或者命令
    	1.5、如果修改了ssh的配置文件的端口,连接时需要接选项:-p 
    		来指定端口号
    2、sftp命令:
    	2.1、基于ssh协议实现ftp功能,底层使用的ssh协议
    	2.2、提供文件的上传和下载
    3、scp命令:
    	远程拷贝,底层通过ssh协议远程连接到其他的机器上,复制文件
    	3.1、从本地将文件传输到服务器
    	scp【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】
    	示例:
    		scp /lianxi/random.sh root@192.168.243.132:/lianxi
    	3.2、从本地将文件夹传输到服务器
    	scp -r【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】
    	示例:
    		scp -r /lianxi/python_test root@192.168.243.132:/lianxi
    	3.3、将服务器上的文件传输到本地
    	scp 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】
    	示例:
    		scp root@192.168.243.132:/lianxi/liuhj.ttt /lianxi
    	
    	3.4、将服务器上的文件夹传输到本地
    	scp -r 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】
    	示例:
    		scp -r root@192.168.243.132:/lianxi/lhj /lianxi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    四、加固ssh服务,提高安全性

    1、在/etc/ssh/sshd_config里修改端口
    2、禁用用户

    也是通过修改这个配置文件/etc/ssh/sshd_config,来禁用root用户。
    
    • 1

    3、为什么ssh的时候不能使用root?登录进去了可以使用root?

    因为底层他没有经过ssh的检测,而是在linux系统内部再启动了一个进程,切换到root用户
    
    • 1

    4、升级openssh

    yum update openssh openssh-clients openssh-server -y
    
    • 1

    5、密钥认证

    先是通过修改这个配置文件/etc/ssh/sshd_config,开启密钥认证,然后再去配置密钥认证
    
    • 1

    6、密码认证

    多修改密码,提高密码的复杂性
    
    • 1

    五、建立免密通道

    1.生成密钥对,在192.168.243.128上使用root用户生成密钥对,密钥对会在用户的家目录下

    [root@localhost ssh]# ssh-keygen -t rsa
    	Generating public/private rsa key pair.
    	Enter file in which to save the key (/root/.ssh/id_rsa):
    	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:Ecds9x/kXGpjN1lXDtudEerhZyCFAJ4ugGRThdehBsM root@localhost.localdomain
    	The key's randomart image is:
    	+---[RSA 2048]----+
    	| +o+o..o++o ...o+|
    	|o oEo.o..o+.o .*B|
    	| . ..o o.. o ==oO|
    	|    o .  .  + O*.|
    	|     . .S    = *o|
    	|      .       o .|
    	|                 |
    	|                 |
    	|                 |
    	+----[SHA256]-----+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2.进入用户的家目录,查看公钥和私钥

    [root@localhost ssh]# cd /root/.ssh/ 
    [root@localhost .ssh]# ls
    id_rsa 私钥
    id_rsa.pub  公钥
    known_hosts
    [root@localhost .ssh]# ll  不建议修改密钥文件的权限,不然会导致密钥失效
    总用量 12
    -rw-------. 1 root root 1679 727 16:46 id_rsa
    -rw-r--r--. 1 root root  408 727 16:46 id_rsa.pub
    -rw-r--r--. 1 root root  182 727 16:34 known_hosts
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.上传公钥到对方的服务器,要求对方的服务器运行root用户登录

    [root@localhost .ssh]# ssh-copy-id -p 2222 -i id_rsa.pub root@192.168.243.132
    /bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
    /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /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.243.132's password:
    Number of key(s) added: 1
    Now try logging into the machine, with:   "ssh -p '2222' 'root@192.168.243.132'"
    and check to make sure that only the key(s) you wanted were added.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.验证登录是否需要密码

    [root@localhost .ssh]# ssh -p '2222' 'root@192.168.243.132'
    Last failed login: Wed Jul 27 16:53:28 CST 2022 from 192.168.243.128 on ssh:notty
    There were 30 failed login attempts since the last successful login.
    Last login: Wed Jul 27 11:55:11 2022
    [root@nginx-kafka01 ~]#
    [root@localhost .ssh]# scp  -P 2222 'root@192.168.243.128':/etc/passwd  .
    passwd                                                                                     100% 1217   561.0KB/s   00:00
    [root@localhost .ssh]#
    [root@localhost .ssh]# ssh -p ‘2222'root@192.168.243.128' mkdir /wangshuai
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5.相关流程图
    在这里插入图片描述

  • 相关阅读:
    JavaScript笔记8-DOM中的事件、获取元素、操作元素
    【Arduino+ESP32+腾讯云+sg90】强制门户+腾讯云控制开关灯
    java虚拟机详解篇八(运行时数据区概述)
    【二】2D测量 Metrology——get_metrology_object_model_contour()算子
    css flex 布局换行
    Win10安装TA_Lib采坑记录
    自动化测试用例设计-软件测试基本概念解析
    【springboot】8、静态资源访问
    挑战30天学完Python:Day2 夯实基础 - 布尔值和运算符
    C++STL详解(一)string类的使用及其模拟实现
  • 原文地址:https://blog.csdn.net/weixin_47661174/article/details/126020594