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

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

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

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

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

3、数字签名:

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

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

1、密码认证:通过/etc/passwd和/etc/shadow文件
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加密算法的私钥

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使用

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

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
四、加固ssh服务,提高安全性

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

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

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

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

4、升级openssh

yum update openssh openssh-clients openssh-server -y

5、密钥认证

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

6、密码认证

多修改密码,提高密码的复杂性
五、建立免密通道

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]-----+

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

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.

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值