配置和保护SSH

使用SSH访问远程命令行

描述Secure Shell

SSH(Secure Shell) 是一种网络协议,用于在不安全的网络上安全地进行系统管理和数据传输。它最初由 Tatu Ylönen 于1995年设计,并成为保护网络服务免受攻击的标准。SSH提供了多种功能,包括远程登录、命令执行、文件传输和端口转发。

Secure Shell示例

使用root用户远程登录;

使用exit命令可以注销远程系统。

[root@hcss-ecs-huawei ~]# exit
logout
Connection to 1.94.13.218 closed.
[root@servera ~]#

 使用普通用户远程登录;

识别远程用户

w命令可以显示当前登录系统的用户列表。它还显示远程系统位置和用户运行的命令。

 

严格的主机密钥检查

StrictHostKeyChecking参数在用户特定的~/.ssh/config文件或系统范围内的/etc/ssh/sshd_config文件中设置。或者通过指定ssh命令的-o StrictHostKeyChecking=选项来设置。

如果 StrictHostKeyChecking参数设置为yes,则ssh命令会在公钥不匹配的情况下始终中断SSH连接。

如果 StrictHostKeyChecking参数设置为no,则ssh命令将启用连接并将目标主机的密钥添加到~/.ssh/known_hosts文件。

SSH已知主机密钥管理

有关已知远程系统及其密钥的信息存储在以下任一位置:

  • 系统范围的/etc/ssh/ssh_known_hosts文件;
  • 每个用户的主目录中的~/.ssh/known_hosts文件。
[root@servera ~]# cat ~/.ssh/known_hosts
1.94.13.218 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIVQneajIfzXxzxwfgHPFu+rixWH7ll/Oxl3N7UMyuan
1.94.13.218 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLyCtDY9KkbQ/t5jwp63LyYHY9CptamUFV2pTlQQh2Geu7
HrMMQ7aDBv5mLCaHazxu15Ka3rBuykP77qy7po2ko=

每个已知主机密钥条目包含一行,其中有三个字段:

  • 第一个字段是共享该公钥的主机名和IP地址的列表;
  • 第二个字段是公钥的加密算法;
  • 最后一个字段是公钥本身。

主机密钥问题故障排除

如果远程系统的IP地址或公钥发生更改,并且您尝试再次通过SSH连接该系统,则SSH客户端会检测到~/.ssh/known_hosts文件中用于该系统的密钥条目不再有效。系统会显示一条警告消息,指出远程主机表示已更改,您必须修改密钥条目。

解决办法:

如果是从Windows终端使用xshell或其他远程工具连接Linux服务器,请按照以下路径找到.ssh文件夹C:\Users\\.ssh,将known_hosts中的主机旧条目删除。

如果是Linux客户端登录Linux服务器出现以上类似的情况,请使用ssh-keygen -R remotesystemname -f ~/.ssh/known_hosts进行操作。

配置基于SSH密钥的身份验证

SSH密钥生成

使用ssh-keygen命令创建一个密钥对。默认情况下,ssh-keygen命令将您的私钥和公钥保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件中。

使用ssh-keygen -t rsa -b 2048 命令在 Linux 中用于生成一个 2048 位的 RSA 密钥对。

 

ssh-keygen:这是一个用于创建新的认证密钥对的命令行工具。它是 OpenSSH 套件的一部分。

-t rsa:指定要生成的密钥类型为 RSA(Rivest-Shamir-Adleman)。RSA 是一种常见的公钥加密算法,广泛用于 SSH 和其他安全协议。

-b 2048:指定密钥长度为 2048 位。密钥长度越长,安全性越高,但计算复杂度也增加。2048 位是目前被认为安全且性能良好的常用长度。

可以选择向ssh-keygen提供密语,用于加密私钥。一旦设置了密语,则每次使用私钥时都必须输入密语。

 

ssh-keygen命令-f选项指定用于保存密钥的文件。

共享公钥

ssh-copy-id命令可将SSH密钥对的公钥复制到远程系统上。可以使用ssh-copy-id命令指定特定的公钥,或使用默认的~/.ssh/id_rsa.pub文件。

 

如果配置了密语来保护私钥,SSH将在第一次使用时请求密语。但是,如果密钥身份验证成功,则不会要求您输入帐户的密码。

SSH客户端配置

SSH 客户端配置文件位于 ~/.ssh/config。如果该文件不存在,可以创建它。

vim ~/.ssh/config

 在配置文件中,可以为不同的远程服务器添加不同的配置项。以下是一个示例配置:

Host myserverHostName 192.168.72.10User rootPort 22IdentityFile ~/.ssh/id_rsaStrictHostKeyChecking yesUserKnownHostsFile ~/.ssh/known_hosts

Host:给远程服务器起一个别名(例如 myserver),以后可以用这个别名来连接服务器。

HostName:远程服务器的 IP 地址或域名。

User:用于连接的用户名。

Port:SSH 服务监听的端口,默认为 22。

IdentityFile:私钥文件路径。

StrictHostKeyChecking:启用严格的主机密钥检查。

UserKnownHostsFile:指定已知主机文件的路径。

自定义OpenSSH服务配置

禁止超级用户进行登录

在生产环境中,一般不会以root用户身份进行远程登录,这样会有很大的安全风险。

OpenSSH服务器使用/etc/ssh/sshd_config文件中的PermitRootLogin配置设置,以允许或禁止用户以root身份登录系统。

PermitRootLogin  yes

当PermitRootLogin参数设置为yes时(默认设置),用户被允许以root用户身份登录系统。要防止这种情况,可将该值设置为no。

禁止将基于密码的身份验证用于SSH

为了提高 SSH 连接的安全性,可以禁用基于密码的身份验证,强制使用基于公钥的身份验证。这可以防止攻击者通过暴力破解密码来访问你的服务器。

打开 /etc/ssh/sshd_config 文件进行编辑:

vim /etc/ssh/sshd_config

找到以下配置项,并确保它们的值如下:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

确保 PubkeyAuthentication 是启用的:

PubkeyAuthentication yes

保存并关闭文件后,重启 SSH 服务使配置生效:

 systemctl restart sshd

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

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

相关文章

正则表达式(Ⅳ)——零宽断言

介绍 以……为开头/以……为结尾 正向表示匹配白名单 先行表示需要写在想要筛选的表达式之后 负向表示匹配黑名单 后行表示需要写在想要筛选的表达式之前 正向先行断言 这段比较复杂,我们拆开来看 \d(?PM) \d表示匹配数字,而且是匹配单个数字 表示…

【C++】C++ 职工信息管理系统(源码)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

EXCEL的自定义功能

一、Excel文件获取 OFFICE中导入文本文件,CSV(分隔符通常是逗号)和TXT(分隔符通常是Tab键,可以用记事本打开查看分隔符)进入单元格,数据——获取外部数据——自文本。 WPS中数据——获取数据——…

Java学习高级四

JDK8开始,接口新增了三种形式的方法 接口的多继承 内部类 成员内部类 静态内部类 局部内部类 匿名内部类 import javax.swing.*; import java.awt.event.ActionEvent;public class Test {public static void main(String[] args) {// 扩展 内部类在开发中的真实使用…

408一战130+|暑假四门课复习经验+资料分享

刚好我有点发言权 408想要考高分,其实很简单,学会抓住主要矛盾! 是吗是主要矛盾,大家都知道,408学科四门课,分别是数据结构,计算机组成原理,操作系统,计算机网络。那么4…

Python进阶(4)--正则表达式

正则表达式 在Python中,正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许你使用一种特殊的语法来匹配、查找、替换字符串中的文本。 在这之前,还记得之前我们是通过什么方法分割…

【Python实战因果推断】42_合成控制2

目录 Matrix Representation Synthetic Control as Horizontal Regression Matrix Representation 在上文中,我向大家展示了一个用矩阵表示面板数据的图像,其中一个维度是时间段,另一个维度表示单位。合成控制明确使用了该矩阵,…

SciPy,一个超级强大的 Python 库

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能…

React 从入门到实战 一一开发环境基础搭建(小白篇)

React 从入门到实战一一开发环境基础搭建(小白篇) React 介绍什么是 react ?react 主要功能react 框架特点 开发工具渲染测试 React 介绍 最近两年,react 也愈来愈火热,想要在里面分一杯羹,那肯定逃不过 r…

访问控制系列

目录 一、基本概念 1.客体与主体 2.引用监控器与引用验证机制 3.安全策略与安全模型 4.安全内核 5.可信计算基 二、访问矩阵 三、访问控制策略 1.主体属性 2.客体属性 3.授权者组成 4.访问控制粒度 5.主体、客体状态 6.历史记录和上下文环境 7.数据内容 8.决策…

【QGroundControl二次开发】二.使用QT编译QGC(Windows)

【QGroundControl二次开发】一.开发环境准备(Windows) 二. 使用QT编译QGC(Windows) 2.1 打开QT Creator,选择打开项目,打开之前下载的QGC项目源码。 编译器选择Desktop Qt 6.6.3 MSVC2019 64bit。 点击运…

第四章:服务-让客户端发现pod并与之通信

本章内容包括: 创建服务资源,利用单个地址访问一组pod发现集群中的服务将服务公开给外部客户端从集群内部连接外部服务控制pod与服务关联排除服务故障 上一章学习了如何通过ReplicaSet以及类似的资源部署运行pod的事。尽管特定的pod可以独立的应对外部刺…

C++之类与对象(1)

目录 前言 1.类的定义 1.1类定义的格式 1.2访问限定符 1.3类域 1.3.1类定义一个作用域 1.3.2类成员在类的作用域中 1.3.3在类体外定义成员 2.实例化 2.1实例化概念 2.2对象大小 3.this指针 4.选择题补充练习 结束语 前言 Hello,友友们,好久…

使用Python Turtle绘制圣诞树和装饰

简介(❤ ω ❤) 在这篇文章中,我们将探索如何使用Python的Turtle模块来绘制一个充满节日气氛的圣诞树,以及一些可爱的装饰品。Turtle是一个受Logo语言启发的图形库,非常适合初学者学习编程和创建图形。 码农不是吗喽(大学生版&…

SpringBoot以及swagger的基本使用

1、SpringBoot是什么? 一种快速开发、启动Spring的框架、脚手架 遵循“约定优于配置”的思想,使得能够快速创建和配置Spring应用 2、SpringBoot的核心特性 自动配置,一些依赖、默认配置都预设好了,减少了配置量起步依赖&#x…

实现给Nginx的指定站点开启目录浏览功能

一、问题描述 需要实现在浏览器上可以浏览Nginx部署网站内容并下载一些常用的软件安装包、文件资料等内容;并且针对一些文件夹或内容需要进行认证后才能查看;有一些格式类型的文件也不能够访问查看。 二、问题分析 1、实现浏览器上可以浏览下载文件内容; 2、针对一些文件…

Android Studio 不再支持windows 7

Android Studio 一打开就报错: 无法找到入口 无法定位程序输入点 CreateAppContainerProfle 于动态链接库USERENV.dII 上。 截图如下: 经调查,是因为系统版本不兼容。 我目前的电脑环境:windows 7,但是现在的Android Studio要…

四六级词汇小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,英语词汇管理,易错词管理,学习笔记管理,签到打卡管理,论坛管理 微信端账号功能包括:系统首页,英语词汇&…

【C++】认识C++(一)

前言 📚作者简介:爱编程的小马,是一名大厂后端c程序员。 📚本文收录于c系列,本专栏主要是分享我所了解的c知识,带领大家慢慢从了解c到认识c,持续更新! 📚本文主要内容&a…

纵向倾斜角、横向倾斜角、全方面监测:输电线路杆塔倾斜在线监测装置

纵向倾斜角、横向倾斜角、全方面监测:输电线路杆塔倾斜在线监测装置 随着我国电网建设的不断加速和电力设施分布范围的扩大,杆塔作为电网的重要组成部分,其安全稳定运行对于保障电力供应具有至关重要的意义。然而,由于地质条件复…