Linux网路SSH服务(愿你我以渺小启程,以伟大结局)(一)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Linux网路SSH服务(愿你我以渺小启程,以伟大结局)(一)

目录



一、SSH服务


1.1 什么是SSH服务器


1.2 SSH原理


1.3 服务端配置


1.3.1 常用配置


1.3.2 使用秘钥对及免交互验证登录


1.4 安全


1.5 ssh客户端


二、TCP Wrappers


2.1 策略的配置格式


2.2访问控制的基本原则


三、轻量级自动化运维工具pssh


3.1 简介


3.2 配置过程


四、总结


一、SSH服务



1.1 什么是SSH服务器


SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度


优点:


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


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


ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务


作用:SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。


OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。


Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。


执行"systemctl start sshd"命令即可启动sshd 服务


sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)


OpenSSH


服务名称:sshd

服务端主程序:/usr/sbin/sshd  

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

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


1.2 SSH原理


image.png


客户端发起链接请求


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


客户端生成密钥对


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


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


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


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


1.3 服务端配置


1.3.1 常用配置


[root@localhost ~]# vim /etc/ssh/sshd_config
#进入服务端的配置文件

image.png


Port 220
关闭selinux

image.png


1.3.2 使用秘钥对及免交互验证登录


登录原理:


用户/密码


基于秘钥免交互验证登录


用户/密码


客户端发起ssh请求,服务器会把自己的公钥发送给用户


用户会根据服务器发来的公钥对密码进行加密


加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功


基于秘钥免交互验证登录


首先在客户端生成一对密钥(ssh-keygen)


并将客户端的公钥ssh-copy-id 拷贝到服务端


当客户端再次发送一个连接请求,包括ip、用户名


服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生成一个字符串


服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端


得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端


服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录


image.png


[root@localhost ~]# ssh-keygen  --help
unknown option -- -
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
                  [-N new_passphrase] [-C comment] [-f output_keyfile]
#-t   表示加密方式,不加是随机
# dsa | ecdsa | ed25519 | rsa | rsa1  表示不同的加密算法

image.png


上面输入的密码是自己设置ecdsa加密后登录的密码,如果也不想要输入ecdsa密码,全部回车


image.png


思考:


设置免密登录后,服务端root改密码后,客户端还能登录吗


答案是可以登录的,因为已经根据密钥对来登录了,与root的密码无关


与用户密码无关

与IP地址无关

只与密钥对有关


1.4 安全


1.通过对比密钥判断是不是我们需要连接的机子


image.png

image.png




2. 限制可登录用户


[root@localhost ~]# vim /etc/ssh/sshd_config
#进入服务端的配置文件

image.png

image.png

image.png


1.5 ssh客户端


命令  功能
ssh 远程安全登录(使用端口-p 22)
scp 远程安全复制
sftp  安全ftp上下载

image.png

image.png

目录
相关文章
|
4月前
|
Linux
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
47 5
linux系统服务二!
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
52 3
linux系统服务!!!
|
1月前
|
安全 Linux Shell
ssh 远程控制服务
SSH(Secure Shell)是一种用于远程登录的安全协议,相比FTP和Telnet,它提供了更高的安全性,避免了明文传输带来的风险。要使用SSH远程管理Linux系统,需要配置sshd服务。本文介绍了如何克隆Linux服务器、修改网络配置,并通过SSH连接两台服务器,最后在目标服务器上创建一个日志文件。
50 4
|
3月前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
351 59
|
1月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
309 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
122 3
|
2月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
30 2
|
2月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
99 0

热门文章

最新文章