远程连接服务

目录

一、远程连接服务器简介

二、连接加密技术简介

三、认证阶段

四、ssh实验

1.修改ssh服务器的端口号

2.拒绝root账户远程登录

3.允许特定用户ssh登录,其他用户无法登录

 4.ssh-keygen

一、远程连接服务器简介

概念:

远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得

可操作主机接口( shell ),而登录后的操作感觉就像是坐在系统前面一样

功能:

分享主机的运算能力

服务器类型:有限度开放连接

工作站类型:只对内网开放
分类:
文字接口:
明文传输:Telnet、RSH等,很少用了
加密传输:SSH为主,已经取代明文传输
图形接口: XDMCP VNC XRDP

二、连接加密技术简介

目前常见的网络数据包加密技术通常是通过 非对称密钥系统 来处理的。主要通过两把不一样的公钥与私钥来进行加密与解密的过程
公钥:提供给远程主机进行数据加密的行为,所有人都可以获得
私钥:远程主机使用你的公钥进行加密的数据,在本地端就能使用私钥进行解密,私钥只有自己有

三、认证阶段

SSH提供两种认证方法:

基于口令的认证(password认证):客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器,服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败消息。

基于密钥的认证(publickey认证):客户端产生一对公共密钥,将公钥保存到将要登录的服务器上的那个账号的家目录的.ssh/authorized_keys文件中。认证阶段:客户端首先将公钥传给服务器端。服务器端收到公钥后会与本地该账号家目录下的authorized_keys中的公钥进行对比,如果不相同,则认证失败;否则服务端生成一段随机字符串,并先后用客户端公钥和会话密钥对其加密,发送给客户端。客户端收到后将解密后的随机字符串用会话密钥发送给服务器。如果发回的字符串与服务器端之前生成的一样,则认证通过,否则,认证失败。

注:服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。客户端从认证方法列表中选取一种认证方法再次进行认证,该过程反复进行。直到认证成功或者认证次数达到上限,服务器关闭连接为止。

[root@server ~]# vim /etc/ssh/sshd_config    //默认配置文件
21 . #Port 22 # 默认监听 22 端口 , 可修改
22 . #AddressFamily any # IPV4 IPV6 协议家族用哪个, any 表示二者均有
23 . #ListenAddress 0.0.0.0 # 指明监控的地址, 0.0.0.0 表示本机的所有地址 ( 默认可修改 )
24 . #ListenAddress :: # 指明监听的 IPV6 的所有地址格式
26 . #HostKey /etc/ssh/ssh_host_rsa_key # rsa 私钥认证 , 默认
27 . #HostKey /etc/ssh/ssh_host_ecdsa_key # ecdsa 私钥认证
28 . #HostKey /etc/ssh/ssh_host_ed25519_key # ed25519 私钥认证
34 #SyslogFacility AUTH # ssh 登录系统的时会记录信息并保存在 /var/log/secure
35 . #LogLevel INFO # 日志的等级
39 . #LoginGraceTime 2m # 登录的宽限时间,默认 2 分钟没有输入密码,则自动断开连接
40 PermitRootLogin yes # 允许管理员 root 登录
41 . #StrictModes yes # 是否让 sshd 去检查用户主目录或相关文件的权限数据
42 . #MaxAuthTries 6 # 最大认证尝试次数,最多可以尝试 6 次输入密码。之后需要等待某段时间后才能
再次输入密码
43 . #MaxSessions 10 # 允许的最大会话数
49 .AuthorizedKeysFile .ssh/authorized_keys # 选择基于密钥验证时,客户端生成一对公私钥之
后,会将公钥放到 .ssh/authorizd_keys 里面
65 #PasswordAuthentication yes # 登录 ssh 时是否进行密码验证
66 #PermitEmptyPasswords no # 登录 ssh 时是否允许密码为空
123 .Subsystem sftp /usr/libexec/openssh/sftp-server # 支持 SFTP ,如果注释掉,则不支持
sftp 连接
AllowUsers user1 user2 # 登录白名单(默认没有这个配置,需要自己手动添加),允许远程客户端可以登录我的哪个用户。 如果名单中没有的用户,则提示拒绝登录

四、ssh实验

1.修改ssh服务器的端口号

服务端操作:
[root@server ~]# vim /etc/ssh/sshd_config  编辑配置文件,修改端口号
21 Port 2222       21行端口号修改成2222
[root@server ~]# getenforce 
Enforcing
[root@server ~]# setenforce 0     关闭selinux
[root@server ~]# systemctl stop firewalld     关防火墙
[root@server ~]# systemctl restart sshd        重启服务
[root@server ~]# netstat -lnutp | grep ssh      查看端口已修改
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      34398/sshd: root@pt 
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      34458/sshd: /usr/sb 
tcp6       0      0 :::2222                 :::*                    LISTEN      34458/sshd: /usr/sb 
tcp6       0      0 ::1:6010                :::*                    LISTEN      34398/sshd: root@pt 客服端操作:
[root@client ~]# ssh root@192.168.31.128   登录被拒绝,默认22号端口已关闭
ssh: connect to host 192.168.31.128 port 22: Connection refused[root@client ~]# ssh root@192.168.31.128 -p 2222   指明以2222端口登录服务端
The authenticity of host '[192.168.31.128]:2222 ([192.168.31.)' can't be established.
ED25519 key fingerprint is SHA256:xBiJa2NTGydTZe3EvwYGu8juGGACLeRBrc.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerpes
Warning: Permanently added '[192.168.31.128]:2222' (ED25519) st of known hosts.
root@192.168.31.128's password:   输入密码
Activate the web console with: systemctl enable --now cockpitRegister this system with Red Hat Insights: insights-client -
Create an account or view all your systems at https://red.ht/dashboard
Last login: Sat Nov  2 18:17:31 2024 from 192.168.31.1
[root@server ~]# 

2.拒绝root账户远程登录

使用配置文件中的Permitrootlogin参数进行实现

参数值:

服务端:

[root@server ~]# vim /etc/ssh/sshd_config

PermitRootLogin no    参数值改成no
[root@server ~]# systemctl restart sshd

客户端:

[root@client ~]# ssh root@192.168.31.128

root@192.168.31.128's password: 密码

[root@server ~]#   登录进去了    

!!!问题来了,当我发现修改主配置文件/etc/ssh/sshd_config里面的PermitRootLogin选项不生效时,应该配置以下文件:

[root@server ~]# vim /etc/ssh/sshd_config.d/01-permitrootlogin.conf 

PermitRootLogin no
[root@server ~]# systemctl restart sshd    再重启服务

客服端重新登录服务端
[root@client ~]# ssh root@192.168.31.128
root@192.168.31.128's password: 
Permission denied, please try again.

3.允许特定用户ssh登录,其他用户无法登录

 服务端:

[root@server ~]# useradd xiaoming   添加用户
[root@server ~]# passwd xiaoming
更改用户 xiaoming 的密码 。
新的密码: 
无效的密码: 密码少于 8 个字符
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# vim /etc/ssh/sshd_config
allowusers   xiaoming    允许登录xiaoming用户

客户端测试:

[root@client ~]# ssh xiaoming@192.168.31.128
xiaoming@192.168.31.128's password: 
Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
[xiaoming@server ~]$ 
注销
Connection to 192.168.31.128 closed.
[root@client ~]# ssh root@192.168.31.128     测试其他用户是否可以登录
root@192.168.31.128's password: 
Permission denied, please try again.
root@192.168.31.128's password: 

 4.ssh-keygen

ssh-keygen 是用于生成、管理、转换密钥的工具
客户端:

[root@server ~]# ssh-keygen -t rsa   一路回车

制作公私钥对id_rsa:私钥文件id_rsa.pub:公钥文件), -t 是指定秘钥类型


[root@client ~]# ssh-copy-id root@192.168.31.128  将公钥上传到服务端

[root@client ~]# ssh root@192.168.31.128  测试客户端
Activate the web console with: systemctl enable --now cockpit.socket

Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Sat Nov  2 18:53:32 2024 from 192.168.31.129
[root@server ~]# 免密登录成功

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv5之Common.py

文章目录 1.学习目的2.网络模型![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/67b8dbd00c9b4034ba370fc8b8a6031a.jpeg)3.common.py分析 1.学习目的 YOLOv5中最关键一个模型类 2.网络模型 3.common.py分析 # Ultralytics YOLOv5 🚀, AGPL-3.0 license…

获取Windows计算机信息的一些常用命令

一、获取Windoiws计算机基本信息 1.1、获取系统详细信息 # systeminfo的详细用法帮助命令 systeminfo /? 通过获取系统信息可以了解系统版本内容、硬件信息、域信息和补丁情况。 systeminfo 1.2、获取系统已经启动的服务 # net的详细用法帮助命令 net /? 1.2.1、获取系…

通过 codespaces + ipad 来进行算法训练

目录 零、前言 一、环境搭建 二、DockerFile 2.1 主要流程 2.2 个人模板 零、前言 最近遇到了翘不了的水课,想在课上写题,但是游戏本一个是太重,一个是续航不行,然后想到了在Ipad 上通过云IDE来码题。 一开始用的腾讯云的 C…

部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio

1. 模块简介 Prometheus 是一个开源的监控系统和时间序列数据库。Istio 使用 Prometheus 来记录指标,跟踪 Istio 和网格中的应用程序的健康状况。Grafana 是一个用于分析和监控的开放平台。Grafana 可以连接到各种数据源,并使用图形、表格、热图等将数据…

深入理解Redis的四种模式

Redis是一个内存数据存储系统,支持多种不同的部署模式。以下是Redis的四种主要部署模式。 1、单机模式 单机模式是最简单的部署模式,Redis将数据存储在单个节点上。这个节点包括一个Redis进程和一个持久化存储。单机模式非常适合小型应用程序或者开发和…

uln2003驱动28BYJ-48步进电机

欢迎入群共同学习交流 时间记录:2024/11/2 一、模块解析 1.uln2003 E脚:接GND COM脚:接VCC外部电源 1-7B:输入引脚 1-7C:输出引脚,输入与输出反向 无法输出高电平,外围电路需要接上拉电路…

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发 本文提供了一份完整的 FastAPI 入门指南,涵盖从环境搭建、依赖安装到创建并运行一个简单的 FastAPI 应用的各个步骤。通过 FastAPI 和 Uvicorn,开发者可以快速构建现代化的 Web API…

SAP ABAP开发学习——BAPI

目录 业务对象 概念 ​编辑业务对象浏览 BAPI BAPI的浏览 BAPI的调用 BAPI的确认和返回 BAPI的创建 MM/SD常用BAPI 附加:长文本修改 业务对象 概念 业务对象浏览 进入SWO3查看 双击BUS2012 双击下图上方红色位置可以看到BAPI方法的内容 BAPI BAPI(Busines…

《高频电子线路》 —— 电感三端LC振荡器

文章内容来源于【中国大学MOOC 华中科技大学通信(高频)电子线路精品公开课】,此篇文章仅作为笔记分享。 电感三端LC振荡器 基本原理(哈特莱电路) 在高频下直流电阻对交流电相阻抗无穷大,相当于开路。谐振回…

它真能替代Express?tinyhttp用速度和轻量征服开发者

它真能替代Express?tinyhttp用速度和轻量征服开发者 如果你是个 Express 粉丝,又经常为它的历史遗留问题头疼,那么有个好消息要告诉你:tinyhttp 来啦!这款专注于轻量、快速的 Web 框架正在以一种更现代的方式挑战 Expr…

【时间之外】IT人求职和创业应知【25】

目录 新闻一:AI流量变现财富峰会在深圳举办 新闻二:江苏省加快释放数据要素价值,推动数据产业发展 新闻三:全国大中城市巡回招聘温州站(民营企业专场)举办 认知决定你的赚钱能力。以下是今天可能影响你求…

qt QGroupBox详解

1、概述 QGroupBox是Qt框架中的一个容器控件,主要用于组织和管理一组相关的控件(如按钮、复选框、文本框等),并为这些控件提供一个框架和标题。通过使用QGroupBox,可以创建具有逻辑分组和视觉层次结构的用户界面&…

从 vue 源码看问题 — vue 初始化都做了什么事?

前言 最近想要对 Vue2 源码进行学习,主要目的就是为了后面在学习 Vue3 源码时,可以有一个更好的对比和理解,所以这个系列暂时不会涉及到 Vue3 的内容,但是 Vue3 的核心模块和 Vue2 是一致的,只是在实现上改变了方式、…

nginx系列--(一)--调试环境搭建

辅助脚本: #!/bin/bash mkdir -p $(pwd)/nginxhome # 生成 Makefile,--prefix need a absolute path --with-stream表示要包括stream模块 auto/configure --prefix$(pwd)/nginxhome --with-stream # lsof -i tcp:10086 && fuser -k 10086/tcp ||true # 定…

Qt/C++地图导航app/支持qml/手机运行/输入起点终点规划路径/模拟轨迹移动

一、前言说明 搞Qt地图开发这块,随着研究的深入,用户的需求变化,最近又需要在手机上运行,由于本地图组件依赖浏览器控件,而手机安卓上的Qt并没有带qwebengine控件,怎么办呢,不断的努力验证下&a…

使用VS Code 安装VUE.js开发环境的搭建并创建第一个项目

初步掌握VUE.js开发环境的搭建并创建第一个项目的操作方法和实验步骤 题目 安装Visual Studio Code。安装VS Code汉化插件。安装Vue官方支持插件。使用VS Code运行第一个HTML页面。安装Node.js并验证其版本。验证npm版本。配置npm的下载镜像源。配置Yarn的下载镜像源。使用Vi…

记本地第一次运行seatunnel示例项目

前置 静态源码编译通过:https://blog.csdn.net/u011924665/article/details/143372464 参考 seatunnel官方的开发环境搭建文档:https://seatunnel.incubator.apache.org/zh-CN/docs/2.3.5/contribution/setup 安装scala 下载scala 去官网下载&…

Maven下载安装配置(环境、本地仓库、阿里云、jdk、idea)(Win11)

目录 Maven3.9.9工具参考下载安装配置环境变量配置验证是否安装完成本地仓库位置存放配置阿里云镜像加速配置jdk版本 配置 idea Maven3.9.9 工具 系统:Windows 11 环境:JDK-8 软件:IDEA-2024.2.1 参考 本人写的《JDK安装与环境配置&#…

袁庭新陕西理工大学演讲——AIGC时代面临的机遇与挑战

大家好,我是袁庭新。分享一篇我在陕西理工大学给计算机专业、人工智能专业和网络工程专业的演讲内容。 各位计算机学院的小伙伴们,大家好啊!欢迎各位来到今天的分享会,非常荣幸能在这里和大家相聚。今天在这里,我要与大…

以客户为导向在开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序内容创作中的实践与价值

摘要:本文深入探讨了在开源 AI 智能名片 2 1 链动模式 S2B2C 商城小程序相关内容创作中以客户为导向的方法和意义。阐述了如何在创作过程中通过与客户对话和转换客户视角来优化内容,以提升该小程序在市场中的竞争力和用户接受度。 一、引言 在数字化商…