CentOS中使用SSH远程登录

devtools/2024/9/23 20:16:42/

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服务的安装与启动

  1. 查看当前的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
  1. 如果没有,通过以下命令安装openSSH
yum install openssh-server -y
  1. 启动SSH服务
  service sshd start

建立SSH连接

基于口令的安全验证:只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。格式如下:

ssh 用户名@服务器IP

示例 客户机连接服务器
在这里插入图片描述
基于密钥的安全验证:你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

  1. 创建密钥对命令:
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]# 

在这里插入图片描述


http://www.ppmy.cn/devtools/56790.html

相关文章

CvT:将卷积引入Vision Transformer

1. 引言 Vision Transformer (ViT)[10]是第一个完全依赖Transformer架构来获得大规模图像分类性能的计算机视觉模型。ViT设计以最小的修改从语言理解适应Transformer架构[9]。首先,将图像分割成离散的不重叠的小块(例如16 16)。然后,这些补丁被当作标记(类似于NLP中的标记)…

C++ | Leetcode C++题解之第204题计数质数

题目&#xff1a; 题解&#xff1a; class Solution { public:int countPrimes(int n) {vector<int> primes;vector<int> isPrime(n, 1);for (int i 2; i < n; i) {if (isPrime[i]) {primes.push_back(i);}for (int j 0; j < primes.size() && i …

FPGA - 图像灰度化

一&#xff0c;灰度图像概念 灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度&#xff0c;尽管理论上这个采样可以任何颜色的不同深浅&#xff0c;甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同&#xff0c;在计算机…

(论文版)深度学习 | 基于 VGG16-UNet 语义分割模型的猫狗图像提取研究

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本实验本项目基于 VGG16-UNet 架构&#xff0c;利用 Labelme 标注数据和迁移学习&#xff0c;构建高效准确的猫狗图像分割模型。通过编码器-解码器结构&#xff08;特征提取-上采样&#xff09;提升分割精度&#xff0c;适应不同…

我在高职教STM32——GPIO入门之按键输入(2)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

梦笔记20240102

过一个桥&#xff0c;叫香花桥&#xff0c;对面是寺&#xff1f;桥是单轨拱桥&#xff0c;非洲高&#xff0c;两边有护栏&#xff0c;红色油漆。 人很多&#xff0c;人挤人。走到中间&#xff0c;离地几十米&#xff0c;害怕。想回走&#xff0c;都是人。只能抓住右侧栏杆&…

NLP经典论文研读--xlnet论文研读笔记

xlnet论文研读笔记 第一次阅读笔记及想法 个人碎碎念 “NeurIPS” (Yang 等, 2019, p. 1) (pdf) &#xff1a; A类会议 基于置换的自回归模型&#xff0c;什么叫基于置换的自回归模型&#xff1f;&#xff1f; xlnet:代码已经从头到尾看了一遍&#xff0c;太难了&#xf…

每天一个数据分析题(三百九十九)- 逻辑回归

逻辑回归中&#xff0c;若选0.5作为阈值区分正负样本&#xff0c;其决策平面是&#xff08; &#xff09; A. wxb&#xff1d; 0 B. wxb&#xff1d; 1 C. wxb&#xff1d; -1 D. wxb&#xff1d; 2 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点…