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

简介: 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

目录
相关文章
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
1月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
22 2
|
1月前
|
安全 Shell Linux
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
36 0
|
17天前
|
Linux 网络安全
linux免密登录报错 Bad owner or permissions on /etc/ssh/ssh_config.d/05-redhat.conf
linux免密登录报错 Bad owner or permissions on /etc/ssh/ssh_config.d/05-redhat.conf
25 1
|
7天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
9天前
|
网络协议 安全 Shell
配置ssh服务
配置ssh服务
|
10天前
|
存储 关系型数据库 MySQL
Linux服务详解
Linux服务详解
25 0
|
11天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
18天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
21天前
|
关系型数据库 MySQL Linux
linux特定服务日志
Linux系统的服务日志在`/var/log`目录下,如系统日志(`/var/log/syslog`或`/var/log/messages`)、认证日志(`/var/log/auth.log`)、SSH日志(`/var/log/auth.log`或`/var/log/secure`)。Web服务器(Apache和Nginx)的访问和错误日志、MySQL错误日志、Postfix及Dovecot邮件服务器日志也在此处。日志位置可能因发行版和服务配置而异,不确定时可查服务配置或用`grep`搜索。使用`logrotate`可管理日志文件大小。
20 6