CentOS中使用SSH远程登录
CentOS中使用SSH远程登录
- 准备工作
- SSH概述
- SSH服务的安装与启动
- 建立SSH连接
- SSH配置文件
- 修改SSH默认端口
- SSH文件传输
准备工作
两台安装CentOS系统的虚拟机
客户机(192.168.239.128)

服务器(192.168.239.129)

SSH概述
Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。
它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
SSH服务的安装与启动
- 查看当前的centos是否安装了openssh-server服务。默认安装openssh-server服务。
rpm -qa|grep -E "openssh"
查看是否安装了以下三个服务
[user@localhost ~]$ rpm -qa|grep -E "openssh"
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
- 如果没有,通过以下命令安装openSSH
yum install openssh-server -y
- 启动SSH服务
service sshd start
建立SSH连接
基于口令的安全验证:只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。格式如下:
ssh 用户名@服务器IP
示例 客户机连接服务器

基于密钥的安全验证:你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。
- 创建密钥对命令:
ssh-keygen
示例 客户机创建密钥对命令
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
//密钥对存放位置(回车默认)
Enter file in which to save the key (/root/.ssh/id_rsa):
//设置密钥对密码(回车默认)
Enter passphrase (empty for no passphrase):
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:817WC5/GOz2ozvF+iGd8WgwnyhN9mr9YZiCYtxX2zbc root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| o |
| o o o..|
| So + * ++|
| oo *.X o|
| .**++E |
| ..++O@*.|
| o+=*O=o|
+----[SHA256]-----+
2.查看密钥对是否生成(id_rsa为私钥,id_ras.pub为公钥)
[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ls
id_rsa id_rsa.pub known_hosts
3.将密钥发送至服务器,命令格式如下:
ssh-copy-id 用户名@服务器IP
示例 客户机将密钥发送至服务器
[root@localhost .ssh]# ssh-copy-id user@192.168.239.129
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@192.168.239.129's password: Number of key(s) added: 1Now try logging into the machine, with: "ssh 'user@192.168.239.129'"
and check to make sure that only the key(s) you wanted were added.[root@localhost .ssh]#
4.使用ssh免密登录到服务器
[root@localhost .ssh]# ssh user@192.168.239.129
Last login: Mon Jul 1 13:58:22 2024 from 192.168.239.128
SSH配置文件
OpenSSH的主配置文件:/etc/ssh/sshd_config,通过vim命令编辑主配置文件。
vim /etc/ssh/sshd_config
各参数详情:
Port=22 设置SSH的端口号是22(默认端口号为22)Protocol 2 启用SSH版本2协议ListenAddress 192.168.0.222 设置服务监听的地址DenyUsers user1 user2 foo 拒绝访问的用户(用空格隔开)AllowUsers root osmond vivek 允许访问的用户(用空格隔开)PermitRootLogin no 禁止root用户登陆PermitEmptyPasswords no 用户登陆需要密码认证PasswordAuthentication yes 启用口令认证方式
修改SSH默认端口
SSH的默认端口为22 ,在实际生产环境中为了保证服务器安全,通常会修改SSH的默认端口。步骤如下:
1.打开服务器的SSH主配置文件,设置新的端口号
vim /etc/ssh/sshd_config /Port进行查找Vim中输入i 进行编辑ESE 退出编辑:wq! 强制保存退出

2.查看22端口相关值
[root@localhost .ssh]# semanage port -l grep ssh
ssh_port_t tcp 22
3.将10008端口的值修改为上面22端口的相关值
[root@localhost .ssh]# semanage port -a -t ssh_port_t -p tcp 10008semanage(管理SELinux安全策略) 命令参数
-a 添加
-t 设置类型
-p 设置协议
查看是否添加成功
[root@localhost .ssh]# semanage port -l grep ssh
ssh_port_t tcp 10008,22
4.防火墙中放行10008端口
[root@localhost]# firewall-cmd --permanent --add-port=10008/tcp
successfirewall-cmd命令参数:
--permanent 永久生效
--add-port 设置端口号/协议
5.重新加载防火墙
[root@localhost]# firewall-cmd --reload
successfirewall-cmd命令参数:
--reload 重新加载
6.重新启动SSH服务
systemctl restart sshd
7.在客户机上测试连接
默认22端口无法连接
[user@localhost ~]$ ssh user@192.168.239.129
ssh: connect to host 192.168.239.129 port 22: Connection refused
指定修改后的10008端口可以进行连接
[user@localhost ~]$ ssh -p user@192.168.239.129
Bad port 'user@192.168.239.129'
[user@localhost ~]$ ssh -p 10008 user@192.168.239.129
The authenticity of host '[192.168.239.129]:10008 ([192.168.239.129]:10008)' can't be established.
ECDSA key fingerprint is SHA256:et3QS43cH/fXhlqnbtuRUjZ+/kgpfqQfiKZ3w5rw84Y.
ECDSA key fingerprint is MD5:8f:f8:f3:b4:af:cb:00:cb:49:cd:8c:65:16:a0:62:8d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.239.129]:10008' (ECDSA) to the list of known hosts.
user@192.168.239.129's password:
Last login: Mon Jul 1 15:02:34 2024 from 192.168.239.128
SSH文件传输
服务器文件下载到客户机
scp [选项] [服务器用户名@]服务器IP地址或域名:服务器文件 本地目录
示例
[root@localhost ~]# scp -P 10008 user@192.168.239.129:/home/user /home/user
scp: /home/user: not a regular file
[root@localhost ~]# scp -P 10008 user@192.168.239.129:/home/user/11.txt /home/user
11.txt 100% 4 0.8KB/s 00:00
[root@localhost ~]#

客户机文件文件上传服务器
scp [选项] 本地文件 [服务器用户名@]服务器IP地址或域名:服务器目录
示例
[root@localhost home]# cd /home/user
[root@localhost user]# ls
11.txt 12.txt
[root@localhost user]# scp -P 10008 12.txt user@192.168.239.129:/home/user
12.txt 100% 4 0.9KB/s 00:00
[root@localhost user]#

相关文章:
CentOS中使用SSH远程登录
CentOS中使用SSH远程登录 准备工作SSH概述SSH服务的安装与启动建立SSH连接SSH配置文件修改SSH默认端口SSH文件传输 准备工作 两台安装CentOS系统的虚拟机 客户机(192.168.239.128) 服务器(192.168.239.129) SSH概述 Secure S…...
spring @Autowire注解作用
终于有人把Autowired注解讲清楚了,赞!!!_autowired-CSDN博客...
密码学原理精解【5】
这里写目录标题 移位密码概述代码 希尔密码( Z 256 Z_{256} Z256)待加密长度被3整除待加密长度不一定被3整除加解密文件 移位密码 概述 以 z 26 运算为例 , k 为密钥 加密: e k ( x ) ( x k ) m o d 26 解密: d k ( x ) ( x − k ) m o d 26 以z_{…...
Unity3D 资源管理YooAsset原理分析与详解
引言 Unity3D 是一款广泛应用于游戏开发、虚拟现实(VR)、增强现实(AR)等领域的强大游戏开发引擎。在开发过程中,资源管理是一项至关重要的任务,它直接影响到游戏的性能和用户体验。YooAsset 是一个基于 Un…...
npm install puppeteer 报错 npm ERR! PUPPETEER_DOWNLOAD_HOST is deprecated解决办法
npm install puppeteer 报错如下: npm ERR! PUPPETEER_DOWNLOAD_HOST is deprecated. Use PUPPETEER_DOWNLOAD_BASE_URL instead. npm ERR! Error: ERROR: Failed to set up Chrome v126.0.6478.126! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to sk…...
浙大版PTA《Python 程序设计》题目集 参考答案
浙大版PTA《Python 程序设计》题目集 参考答案 本答案配套详解教程专栏,欢迎订阅: PTA浙大版《Python 程序设计》题目集 详解教程_少侠PSY的博客-CSDN博客 01第1章-1 从键盘输入两个数,求它们的和并输出 aint(input()) # 输入a的值 bint(…...
“拆分盘投资:机遇与风险并存
一、引言 随着互联网技术的日新月异,金融投资领域迎来了前所未有的变革,其中拆分盘作为一种新兴的投资模式,正逐渐进入公众的视野。其独特的价值增长逻辑和创新的投资机制,为投资者开辟了新的财富增值渠道。本文旨在深入探讨拆分…...
Java面试题系列 - 第2天
题目:Java中的线程池模型及其配置策略 背景说明:在Java多线程编程中,线程池是一种高效的线程复用机制,能够有效管理和控制线程的创建与销毁,避免频繁创建和销毁线程带来的性能开销。理解和掌握线程池的配置策略对于优…...
AGI|Transformer自注意力机制超全扫盲攻略,建议收藏!
一、前言 2017年,谷歌团队推出一篇神经网络的论文,首次提出将“自注意力”机制引入深度学习中,这一机制可以根据输入数据各部分重要性的不同而分配不同的权重。当ChatGPT震惊世人时,Transformer也随之进入大众视野。一夜之间&…...
QT+OpenCV在Android上实现人脸实时检测与目标检测
一、功能介绍 在当今的移动应用领域,随着技术的飞速发展和智能设备的普及,将先进的计算机视觉技术集成到移动平台,特别是Android系统中,已成为提升用户体验、拓展应用功能的关键。其中,目标检测与人脸识别作为计算机视…...
常见网络攻击方式及防御方法
1. DDOS攻击(分布式拒绝服务攻击) 概念:借助于C/S(客户端/服务器)技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDOS攻击,从而成倍地提高拒绝服务攻击的威力。防护方…...
使用 ESP32 实现无线对讲机功能涉及音频采集、音频传输以及音频播放等多个方面。实现无线对讲机功能的基本步骤和示例代码。
硬件准备 两个 ESP32 开发板两个 MAX9814 麦克风模块(或其他兼容的模拟麦克风模块)两个 MAX98357A DAC 模块(或其他兼容的音频放大器模块)扬声器 接线 麦克风模块 -> ESP32 ADC 引脚ESP32 DAC 引脚 -> 音频放大器模块 -&…...
SpringBoot项目,配置文件pom.xml的结构解析
pom.xml 是 Maven 项目对象模型(Project Object Model)的配置文件,它定义了 Maven 项目的基本设置和构建过程。以下是 pom.xml 文件的基本结构和一些常见元素的解析: 项目声明 (<project>): <modelVersion>: 通常设置…...
教程:Spring Boot中集成Memcached的详细步骤
教程:Spring Boot中集成Memcached的详细步骤 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代应用开发中,缓存是提升性能和扩展性…...
Websocket通信实战项目(图片互传应用)+PyQt界面+python异步编程(async) (上)服务器端python实现
Rqtz : 个人主页 共享IT之美,共创机器未来 Sharing the Beauty of IT and Creating the Future of Machines Together 目录 项目背景 编辑专有名词介绍 服务器GUI展示 功能(位置见上图序号) 客户端GUI展示(h5cssjs…...
实验一 MATLAB \ Python数字图像处理初步
一、实验目的: 1.熟悉及掌握在MATLAB\Python中能够处理哪些格式图像。 2.熟练掌握在MATLAB\Python中如何读取图像。 3.掌握如何利用MATLAB\Python来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在M…...
echarts柱状选中shadow阴影背景宽度设置
使用line,宽度增大到所需要的宽度,设置下颜色透明度就行 tooltip: {trigger: axis,//把阴影的层级往下降z:-15,axisPointer: {type: line,lineStyle: {color: rgba(150,150,150,0.3),width: 44,type: solid,},}, }, series: [{type: bar,barWidth:20,//…...
ArrayBuffer 对象常见的几个用途
ArrayBuffer 在 JavaScript 中的用途广泛,主要用于处理二进制数据。 ArrayBuffer 对象、 TypedArray 视图和 DataView 视图是 JavaScript 操作二进制数据的一个接口。本文介绍ArrayBuffer 对象的常见的一些用法。 1. 网络传输二进制数据 使用方法:通过 …...
STC89C52RC单片机设计的FM收音机+自动搜台+存储电台(程序+原理图+PCB)
资料下载地址:STC89C52RC单片机设计的FM收音机自动搜台存储电台(程序原理图PCB) 1、实物图 2、部分程序 #include <reg52.h> #include "tea5767.h" #include "delay.h" #include "lcd1602.h" //K1:上一台 K2:下一…...
【若依】关闭当前标签页并跳转路由到其他页面
使用场景如:当在新增/编辑路由页面提交成功后,需要关闭当前页,并跳转回列表页。 实现代码: this.$store.dispatch("tagsView/delView", this.$route); //关闭当前页 this.$router.replace({ path: "/xxx/xxx"…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
