Linux基础服务1——Openssh

news2024/11/25 20:18:17

文章目录

  • 一、基本简介
  • 二、登录示例
    • 2.1 当前用户登录
    • 2.2 指定用户登录
  • 三、ssh主机密钥
  • 四、ssh免密登录
  • 五、服务端配置文件
    • 5.1 连接端口号
    • 5.2 限制只能使用普通用户登录
    • 5.3 密钥登录
  • 六、SSH安全注意事项

一、基本简介

常见远程登录工具:

  1. telnet,认证明文,数据传输明文。
  2. ssh,通信过程及认证过程是加密的,主机认证,用户认证过程加密,数据传输过程加密。
  3. dropbear,嵌入式系统专用的SSH服务器端和客户端工具。
  4. scp :跨主机安全复制工具。常用参数: -r 递归复制;-P指定远程机的ssh连接端口;-q静默模式;-a全部复制。

Openssh认证方式:

  • 基于口令认证,账号密码验证。
  • 基于密钥认证,证书密钥验证。

工作模式:

  1. openSSH是基于C/S架构工作。
    • C/S架构:client(客户端)/server(服务器端)。
    • B/S架构:Browser(浏览器)/server , 网站,互联网电商公司使用。
  2. server服务器端 :sshd,配置文件在/etc/ssh/sshd_config,一般修改服务端配置文件。
  3. client客户端 :ssh,配置文件在/etc/ssh/ssh_config。
    • ssh-keygen :密钥生成器。
    • ssh-copy-id :将公钥传输至远程服务器。

二、登录示例

2.1 当前用户登录

  • 以客户端当前用户远程登录到服务器端。若服务器端也存在一样的用户,则登录成功;否则,登陆失败。

在这里插入图片描述

2.2 指定用户登录

  • 使用服务器端指定用户远程登录,后面可以接命令以此查看服务器端的相关信息。
  • w命令可以显示当前登录到计算机的用户列表。

在这里插入图片描述

三、ssh主机密钥

ssh通信原理:

  • ssh通过公钥加密的方式保持通信安全。当本地客户端ssh连接远程服务器时,在该客户端登录之前,服务器端会给本地发送它的公钥副本。
  • 当用户第一次使用ssh连接到远程服务器时,ssh命令会在本地用户的~/.ssh/known_hosts文件中存储远程服务器的公钥。在此之后每当用户进行远程连接时,客户端都会拿 ~/.ssh/known_hosts文件中的服务器条目与服务器发送过来的公钥副本对比,确保从服务器获得相同的公钥。若公钥不匹配,则中断连接。
  • 若远程服务器端由于硬盘故障原因导致它的公钥丢失,或者出于某些正当理由替换公钥,本地客户端则需要更新~/.ssh/known_hosts文件并删除旧的条目才能够进行登录。

在这里插入图片描述

四、ssh免密登录

  • 第一步,本机生成一对密钥,分别为私钥和公钥。
  • 第二步,将公钥复制到想远程登录的服务器上。
  • 第三步,当本机ssh到目标服务器上时,目标服务器上存在的公钥与本机私钥对比,若是一堆密钥,则连接成功。
  • 使用ssh-keygen命令生成密码。将会生成私钥/.ssh/id_rsa和公钥~/.ssh/id_rsa.pub。

1.生成密钥对,默认存储在/root/.ssh/目录,私钥和公钥的权限就分别为600和644,.ssh目录权限必须是700。

ssh-keygen -t ras

在这里插入图片描述
2.将生成的公钥拷贝到目标主机,并修改文件名称为authorized_keys,可在本机的/etc/ssh/sshd_config文件种查看。

ssh-copy-id root@192.168.130.161

在这里插入图片描述
3.此后再远程登录就不需要输入密码了。
在这里插入图片描述

五、服务端配置文件

  • 一般修改服务端配置文件,/etc/ssh/sshd_config,其中有很多配置我们需要了解。
参数释义
Portssh连接服务端的端口号
HostKey客户端第一次连接服务端时,服务端发送给客户端的公钥,存放在客户端的~/.ssh/known_hosts文件中。
PermitRootLogin {yes|no}是否允许root用户远程登录系统,默认为yes。
StrictModes是否验证客户端第一次ssh登录服务时的key,默认为yes,需要用户手动输入yes或no确认。
MaxAuthTries最多能尝试连接的次数,默认为6。
MaxSessions最多能打开的终端数量,默认为10。
PubkeyAuthentication是否开启密钥验证登录,默认为yes。
PasswordAuthentication是否启用密码身份验证,默认开启
AuthorizedKeysFile免密登陆时,客户端需要把公钥放入服务端的.ssh/authorized_keys中。
UseDNS使用服务器域名连接登录。

5.1 连接端口号

  • 默认的ssh连接端口为22,实际情况中是要修改的,减少黑客入侵概率。

1.修改服务端的配置文件连接端口号为999。
在这里插入图片描述
2.此时客户端去连接服务端需要指定端口号,否则连接失败。
在这里插入图片描述

5.2 限制只能使用普通用户登录

1.创建普通用户qingjun。

[root@localhost ssh]# useradd qingjun
[root@localhost ssh]# echo 'qingjun123' | passwd --stdin qingjun

2.修改配置文件参数禁止使用root用户登录,并重启sshd服务。
在这里插入图片描述
3.此时再用root用户登录该服务器会失败。
在这里插入图片描述
4.使用普通用户qingjun登录可以成功连接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 密钥登录

1.默认可以使用密钥登录。
在这里插入图片描述
2.修改配置文件,关闭密钥登录,并重启sshd服务。
在这里插入图片描述

3.再次登录该服务器时,就只能使用密码登录。
在这里插入图片描述
4.若要使用密钥登录,需要先生成windows本机的密钥对,然后将公钥放入linux虚拟机的.ssh/authorized_keys文件中。在shell工具上方的“工具”——“新建用户密钥生成导向”,然后开始生成win主机的密钥对,生成的公钥复制粘贴到linux服务器的.ssh/authorized_keys文件中并重启sshd服务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、SSH安全注意事项

1.密码应该经常换且足够复杂。

##生成随机密码,指定密码组成元素为a-z0-9_+,10代表密码长度。
tr -dc a-z0-9_+ < /dev/urandom | head -c 10 |xargs

在这里插入图片描述

##生成随机密码,可自定义密码长度。
openssl rand -base64 20

在这里插入图片描述
2.使用非默认端口。必须修改sshd配置文件中的默认端口号。
3.限制登录客户端地址。
4.仅监听特定的IP地址。
5.禁止管理员直接登录。
6.仅允许有限制用户登录:AllowUsers、AllowGroups
7.使用基于密钥的认证。
8.禁止使用空密码。
9.禁止使用SSHv1版本。
10.设定空闲会话超时时长。在/etc/baserc或/etc/profile文件里添加一行export TMOUT=10,表示xhell会话10秒不操作,则断开连接。永久不断开设置为0。
11.利用防火墙设置ssh访问策略。
12.限制ssh的访问频度和并发在线数。
13.做好日志的备份,经常分析(集中于某台服务器)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 获取水库流域并判断雨量站是否在水库流域范围内或附近

获取水库流域并判断雨量站是否在水库流域范围内或附近 准备工作 水库流域区域的geojson文件雨量站的经纬度 工具类 这里有两个方法&#xff1a; isInsideBoundary&#xff1a;判断雨量站是否在流域范围内calculateNearestDistance&#xff1a;计算雨量站和流域边界点最近距…

100种思维模型之马斯洛需求层次理论-81

马斯洛需求层次理论是人本主义科学理论之一&#xff0c;由美国心理学家亚伯拉罕马斯洛在1943年在《人类激励理论》论文中所提出。 文中将人类需求像阶梯一样从低到高按层次分为五种&#xff0c;分别是&#xff1a;生理需求、安全需求、社交需求、尊重需求和自我实现需求。 一、…

如何使用Divi建立会员网站 – 第1部分

欢迎来到这个由 2部分组成的系列的第 1部分&#xff0c;我将在其中向您展示如何通过结合MemberPress和 Divi来构建一个完整的会员网站。我将带您了解如何设置您的会员网站&#xff0c;其中包含销售在线课程或产品所需的一切&#xff0c;包括自定义注册页面、电子邮件通知以及在…

K8S的架构理论概述

一、Kubernetes介绍 1、什么是Kubernetes&#xff1f; 用于自动部署、扩展和管理“容器化( containerized) 应用程序”的开源系统 可以理解成K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群&#xff0c;是–个生态极其丰富的容器编排框架工具 由来&#xff1a; …

打印金字塔图案总结

那么好了好了&#xff0c;宝子们&#xff0c;今天给大家总结一下“打印金字塔图案”&#xff0c;来吧&#xff0c;开始整活&#xff01;⛳️ 最近在牛客网上刷题&#xff0c;遇到了这个打印类型的题目&#xff0c;我想总结一下&#xff0c;然后分享给大家。 一、正向金字塔 …

2023年上半年软考成绩查询时间

23年上半年软考考后成绩查询、分数线、证书领取相关注意事项 一、软考成绩查询时间 软考考试时间分为上半年和下半年&#xff0c;上半年固定是在五月份下半年固定是在十一月份。 成绩查询时间一般在考试时间后的两个月左右根据历年来看&#xff0c; 根据往年成绩查询时间来看…

活动回顾 | 汇聚行业技术大咖,共享思维碰撞时刻,2023 Meet TVM · 北京站圆满落幕

内容一览&#xff1a;「2023 Meet TVM北京站」于 6 月 17 日在中关村车库咖啡顺利举办&#xff0c;现场吸引了来自企业和高校的 150 余名参与者&#xff0c;大家进行了充分热烈的讨论。 关键词&#xff1a;机器学习编译 2023 Meet TVM 本文首发自 HyperAI 超神经微信公众平台~ …

(2023进阶版)vue+h5 通过高德地图(原生) 获取当前位置定位

前言&#xff1a;因为也是用的上一个版本的代码&#xff0c;为了描述清楚所以就直接复制文章来更改了&#xff0c;这一版更加完善简洁&#xff0c;高德地图精确度也更高 (2021年写过的一版上线了挺长时间&#xff0c;2023年突然被应用市场下架&#xff0c;说流程走不通&#xf…

客户的认可,是我们前行中最大的动力

近日&#xff0c;天空卫士连续收到中国联合网络通信集团和海信集团的感谢信。信中对天空卫士的技术支撑能力、资源调配能力和敬业精神提出高度表扬。 全力协助中国联通“供应链安全” 实战演练圆满完成中国联合网络通信集团有限公司发出感谢信&#xff0c;对天空卫士在2023年集…

OpenCV(图像处理)-基于Python-轮廓查找

轮廓查找 1. 轮廓2.轮廓查找2.1 findContours()2.2 drawContours()2.3 contourArea()和arcLength()2.4 多边形逼近与凸包approxPolyDP()convexHull()2.5 外接矩形minAreaRect()boundingRect() 1. 轮廓 一个图像中具有相同颜色或强度&#xff08;灰度图&#xff09;的连续点所组…

jetson-TX2刷机与镜像生成、恢复

目录 1. 系统与SDK烧录 2. tx2系统镜像备份与恢复 1. 系统与SDK烧录 1. 准备一台ubuntu系统的主机&#xff0c;一根安卓数据线&#xff0c;主机需连网&#xff0c;jetson设备无需连网。 2. 宿主机安装sdkmanager&#xff0c;建议安装版本较新一点的。 先下载sdkmanager的安…

C++基础(11)——STL(基本概念和string)

前言 本文主要介绍C中STL基本知识和string类 7.1&#xff1a;初识STL 7.1.1&#xff1a;STL六大组件 算法要通过迭代器来访问容器中的数据 STL的六大组件&#xff1a;容器、算法、迭代器、仿函数、适配器、空间配置器 1.容器&#xff1a;各种数据结构&#xff0c;如vecto…

2.9 epoll的实现原理

目录 一、epoll的数据结构1、epoll的数据结构选择2、epoll数据结构图 二、epoll的线程安全三、epoll的内核回调epoll 回调函数epoll回调时机 四、epoll的用户态接口epoll_createepoll_ctl epoll_wait 五、epoll的LT和ET 在前文已经基于dpdk实现了用户态协议栈&#xff0c;但是有…

编译原理笔记(哈工大编译原理)(及格版)

文章目录 前言概论语言与文法基本概念字母表串字母表与串的联系 文法语言推导和规约句型与句子语言与字母表 文法的分类CFG的分析树 词法分析正则式正则定义有穷自动机&#xff08;FA&#xff09;DFANFAFA之间的等价性 从RE到DFARE转NFANFA确定化&#xff1a;子集法DFA最小化&a…

Vue.js 内部运行机制

在 new Vue() 之后。 Vue 会调用 _init 函数进行初始化,也就是这里的 init 过程,它会初始化生命周期、事件、 props、 methods、 data、 computed 与 watch 等。其中最重要的是通过 Object.defineProperty 设置 setter 与 getter 函数,用来实现「响应式」以及「依赖收集」,…

spring boot 运行报错: 找不到或无法加载主类

原文地址&#xff1a;spring boot 运行报错: 找不到或无法加载主类 - 走看看 一&#xff1a;当在eclipse启动spring boot项目时出现问题&#xff1a; springboot错误: 找不到或无法加载主类 解决办法&#xff1a; 1&#xff0c;通过cmd命令行&#xff0c;进入项目目录进行&am…

Linux5.7 MySQL 高级(进阶) SQL 语句

文章目录 计算机系统5G云计算第四章 LINUX MySQL 高级(进阶) SQL 语句一、高级SQL 语句1&#xff09;SELECT2&#xff09;DISTINCT3&#xff09;WHERE4&#xff09;AND OR5&#xff09;IN6&#xff09;BETWEEN7&#xff09;通配符8&#xff09;LIKE9&#xff09;ORDER BY10&…

【软件测试面试题】offer又失之交臂?项目经验项目描述看这个篇就够了

前言 我们测试人员在找工作中&#xff0c;基本都会碰到让介绍项目的这种面试题。 如何正确介绍自己的项目&#xff1f;需要做哪些技术准备&#xff1f; 关于介绍自己的项目&#xff1f; 可以从以下几个方面来表述&#xff1a; 项目基本介绍&#xff1a;项目架构、项目业务流…

如何模拟一个僵尸进程

原理 子进程先于父进程退出&#xff0c;父进程还在继续运行&#xff0c;且没有调用wait函数。 实验代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> #include <errno.h>#define _DEBUG_INFO #ifdef _DEB…

Zabbix“专家坐诊”第196期问答汇总

问题一 Q&#xff1a;统计一个主机群组里&#xff0c;值为A的某个监控项的个数&#xff0c;函数应该怎么写&#xff1f; A&#xff1a;参考&#xff1a; https://www.zabbix.com/documentation/6.0/zh/manual/config/items/itemtypes/calculated/aggregate。 Q&#xff1a;文…