【Linux网络】ssh服务与配置,实现安全的密钥对免密登录

您所在的位置:网站首页 网络连接需要网络密钥密钥在哪找 【Linux网络】ssh服务与配置,实现安全的密钥对免密登录

【Linux网络】ssh服务与配置,实现安全的密钥对免密登录

2024-07-08 03:56:51| 来源: 网络整理| 查看: 265

目录

一、SSH基础

1、什么是ssh服务器

2、对比一下ssh协议与telnet协议

3、常见的底层为ssh协议的软件:

4、拓展

二、SSH软件学习

1、ssh服务软件学习

2、sshd公钥传输的原理:

3、ssh命令学习:

4、学习解读sshd服务配置文件:

三、ssh服务的应用

1、使用密钥对免密码登录

第一步:在客户端自己生成一对密钥(使用命令ssh-keygen)

第二步:将公钥文件导入给服务器,检查自己会产生一个known_hosts文件,服务器对应用户的家目录的.ssh目录下也会产生一个authorized_keys文件。

第三步:验证是否免密:(这个是单向的,如果需要服务器也能连接客户端,那么还需要在服务器同样做设置)

2、黑白名单设置

黑白名单的语法:

第一种:白名单

第二种: 黑名单

一、SSH基础 1、什么是ssh服务器

ssh是一种安全通道协议,主要用来实现远程登录、数据传输等;ssh协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令,ssh为建立在应用层和传输层基础上的安全协议。

2、对比一下ssh协议与telnet协议

telnet协议: 是明文的,端口号是tcp的23端口;

ssh协议: 数据传输是加密的,可以防止信息泄露;数据传输是压缩的,可以提高传输的速度;端口是tcp的22端口;

SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议 。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

3、常见的底层为ssh协议的软件: Linux客户端: ssh, scp, sftp,slogin Windows客户端:xshell, MobaXterm,putty, securecrt OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。 Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。 执行"systemctl start sshd"命令即可启动sshd 服务 4、拓展

Windows上自带的远程连接工具是mstsc,是使用的tcp的3389端口,使用的RDP协议

二、SSH软件学习 1、ssh服务软件学习 软件名:openssh(在centos7中为openssh-server) 服务名称:sshd 服务端主程序:/usr/sbin/sshd 服务端配置文件:/etc/ssh/sshd_config ##ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能) 客户端配置文件:/etc/ssh/ssh_config 2、sshd公钥传输的原理:

客户端发起连接请求

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

客户端生成密钥对

客户端用自己的公钥异或会话ID(异或是算法,有很多种),计算出一个值Res,并用服务端的公钥加密

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

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

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

原理是这样,但是在实际操作中客户端把服务器的公钥记录在了~/.ssh/known_hosts文件中

拓展:

思考我们登录时怎么确认是不是我需要连接的服务器?(有个前提是我能碰的着服务器)

首先在客户端连接服务器:

服务器连接自己试试:

3、ssh命令学习: ssh命令的语法:ssh [选项] 用户名@服务器ip地址或域名 选项: -p 端口号:不加默认是22号端口,如果是端口被修改了,需要指定端口号; -l 用户名:这个和“用户名@”效果一样; -t 跳板机服务器ip地址:比如需要访问外网的时候,需要先过内外网服务器等等; -o 配置文件参数变量值:比如ssh 192.168.20.10 -o StrictHostKeyChecking=no (允许免密登录) ssh 还能直接跟上命令 如: ssh 192.168.91.101 hostname (显示远程服务器的主机名) 4、学习解读sshd服务配置文件: [root@localhost /]#vim /etc/ssh/sshd_config 17 #Port 22 ##这是sshd服务监听的端口,为了安全起见,建议更改默认端口为一个五位数以上的端口号 18 #AddressFamily any 19 #ListenAddress 0.0.0.0 ##可以改为自己的自己的ip地址 20 #ListenAddress ::##用来设置sshd服务器绑定的IP地址 32 SyslogFacility AUTHPRIV 33 #LogLevel INFO ##当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV,sshd 服务日志存放在:/var/log/secure。 ##可以做日志分离优化 ##LogLevel用来设定sshd日志消息的级别,与上面记录的等级息息相关 35 # Authentication: ##限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒 37 #LoginGraceTime 2m ##LoginGraceTime用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为妙 38 #PermitRootLogin yes ##PermitRootLogin用来设置能不能以root身份ssh登录, 40 #MaxAuthTries 6 ##用来设置最大失败尝试登陆次数为6 41 #MaxSessions 10 ##设置同一个连接最大会话 43 #PubkeyAuthentication yes ##基于key验证(生产中需要打开) 63 #PasswordAuthentication yes 64 #PermitEmptyPasswords no ##是否允许空密码登录,no表示不允许,需要密码!! ##密码验证建议还是需要的!可以通过认证的秘钥来登陆,来减少密码交互。 65 PasswordAuthentication yes ##基于用户名和密码连接,默认为yes 96 UsePAM yes ##设置是否通过PAM验证,需要的 98 #AllowAgentForwarding yes ##允许代理 99 #AllowTcpForwarding yes ##允许tcp那个代理 100 #GatewayPorts no ##设置是否允许远程客户端使用本地主机的端口转发功能,出于安全考虑,建议禁止 115 #UseDNS no ##UseDNS是否使用dns反向解析,建议关闭,内网改为no可以提高速度 这是可以添加的选项: #AllowUsers ... ##指定允许通过远程访问的用户,多个用户以空格隔开 比如:AllowUsers [email protected] lisi ##默认拒绝所有 ##允许所有的主机访问我的lisi用户 ##只允许192.168.91.101上的所有用户访问本机的zhangsan用户 #AllowGroups ... ##指定允许通过远程访问的组,多个组以空格隔开。当多个用户需要通过ssh登录系统时,可将所有用户加入一个组中。 #DenyUsers ... ##指定禁止通过远程访问的用户,多个用户以空格隔开 举例:DenyUsers liwu #拒绝liwu被访问 #DenyGroups ... ##指定禁止通过远程访问的组,多个组以空格隔开。

三、ssh服务的应用 1、使用密钥对免密码登录 第一步:在客户端自己生成一对密钥(使用命令ssh-keygen) ##使用命令生成一对密钥 [root@localhost .ssh]#ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): ##默认放在用户的家目录下的~/.ssh/下 Enter passphrase (empty for no passphrase): ##对密钥文件加密,密码至少5个字符 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:VqCGTmM6KO1NlBm1NNuCUZYE7ZXsCrZedcKdDaS4kFQ [email protected] The key's randomart image is: +---[RSA 2048]----+ | =BEo.o. | | . @oB+o. | | %.B+o..+ | | o *o+.o=.+ . | |o +.oo.oSo | |.. +. o. | | .... | | . | | | +----[SHA256]-----+ ##验证密钥对成功创建 [root@localhost .ssh]#ls id_rsa id_rsa.pub

第二步:将公钥文件导入给服务器,检查自己会产生一个known_hosts文件,服务器对应用户的家目录的.ssh目录下也会产生一个authorized_keys文件。

第三步:验证是否免密:(这个是单向的,如果需要服务器也能连接客户端,那么还需要在服务器同样做设置)

2、黑白名单设置 黑白名单的语法: #AllowUsers ... ##指定允许通过远程访问的用户,多个用户以空格隔开 比如:AllowUsers [email protected] lisi ##默认拒绝所有 ##允许所有的主机访问我的lisi用户 ##只允许192.168.91.101上的所有用户访问本机的zhangsan用户 #AllowGroups ... ##指定允许通过远程访问的组,多个组以空格隔开。当多个用户需要通过ssh登录系统时,可将所有用户加入一个组中。 #DenyUsers ... ##指定禁止通过远程访问的用户,多个用户以空格隔开 举例:DenyUsers liwu #拒绝liwu被访问 #DenyGroups ... ##指定禁止通过远程访问的组,多个组以空格隔开。 第一种:白名单 [root@localhost ssh]#vim /etc/ssh/sshd_config #手动添加 AllowUsers [email protected] ##表示只允许192.168.20.10主机上的任意用户能够连接zhangsan ##并且默认拒绝所有

第二种: 黑名单 ##服务器上添加黑名单 [root@localhost .ssh]#vim /etc/ssh/sshd_config 2 DenyUsers [email protected]

拓展:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!报错

翻译为:提醒你远程主机的身份已经修改了;

系统之前连接过192.168.20.10,记录了它的公钥,现在换了一台主机ip也是这个,但是公钥与缓存不一致,所以ssh好心提醒一下;

解决思路:根据生产环境需求,如果是安全的,那么删掉本地的密钥缓存(删除~/.ssh/known_hosts文件中的对应192.168.20.10的公钥)。

学习计划安排

我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线 ②上百份渗透测试电子书 ③安全攻防357页笔记 ④50份安全攻防面试指南 ⑤安全红队渗透工具包 ⑥HW护网行动经验总结 ⑦100个漏洞实战案例 ⑧安全大厂内部视频资源 ⑨历年CTF夺旗赛题解析



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭