Day22 SSH远程管理服务

2024-04-25 23:44
文章标签 服务 ssh day22 远程管理

本文主要是介绍Day22 SSH远程管理服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

sshd服务,系统自带,默认开机自启运行

云/物理服务器的安全组和防火墙默认放行该端口

软件包:openssh-server(服务端);openssh-client(客户端);

格式:ssh IP地址/域名 [参数]

[参数]:

-p 端口号:ssh指定端口登录,一般用于登录修改过端口号的服务器

-i 密钥文件路径:使用指定密钥文件登录

-X:打开对方服务器下带有图形化界面的应用,X11

ssh服务配置文件

服务端配置文件

/etc/ssh/sshd_config

配置文件部分参数解释:

Port 22    //指定允许登录端口22

PermitRootLogin yes    //允许root用户登录

SyslogFacility AUTHPRIV    //将sshd的相关日志储存在 AUTHPRIV 日志对象中

LoginGraceTime 2m    //客户端将有2分钟的时间来完成身份验证,超时将断开连接

MaxAuthTries 6    //每个客户端最多6次机会进行身份验证,超过3次(半数)验证失败将被系统日志记录,超过6次连接将被拒绝

MaxSessions 10    //允许单个客户端建立最多10个会话

AuthorizedKeysFile .ssh/authorized_keys    //指定ssh服务的公钥验证文件authorized_keys(锁)的的位置在每个用户的家目录下的 .ssh 目录中

可以将位置指向同一个目录方便管理例如:AuthorizedKeysFile /etc/ssh/authorized_keys/%u

%u为占位符,实际过程中会被替换为以当前用户名命名的文件夹

PubkeyAuthentication yes    //允许使用密钥验证登录

PasswordAuthentication yes    //允许使用密码验证登录

X11Forwarding yes    //允许X11(图形界面)转发

客户端配置文件

/etc/ssh/ssh_config

Port 22    //指定登陆端口

ForwardX11Trusted yes    //信任服务端通过ssh连接转发过来的X11(图形界面)连接

实例:修改ssh端口

①修改ssh服务端配置文件:vim /etc/ssh/sshd_config

②修改 Port 端口号,保存退出,重启服务,客户端无法登录

此时,客户端想要通过ssh登录服务端的方法:

①通过 [参数] -p来指定端口进行登录

②修改ssh客户端:vim /etc/ssh/ssh_config,将端口号修改为和服务端一致

ssh密钥登录

密钥文件目录(隐藏):/root/.ssh/

root为当前的登录用户,所以密钥目录在当前用户家目录 /root/ 下

生成ssh密钥:ssh -keygen

一直Enter,会在 /root/.ssh/ 目录下生成一对密钥文件:id_rsa.pub 和 id_rsa

公钥:id_rsa.pub

私钥:id_rsa

密钥原理

同一台服务器上的公钥文件 id_rsa.pub 和私钥文件 id_rsa 像是一对配套的锁和钥匙,公钥是锁,私钥是钥匙

但是只有把公钥文件的内容写入验证文件 authorized_keys 中时才能发挥锁的作用

把验证文件(锁)下在谁身上,就可以用对应的私钥文件(钥匙)开谁

实例:免密登录

使用A免密登录B

①A生成密钥:ssh-keygen,密钥文件在 /root/.ssh/ 目录下

A生成配套的A锁(id_rsa.pub)和A钥匙(id_rsa),但此时A锁还不能起作用

②A想免密登录B,则A将自己公钥文件 id_rsa.pub 内容写进B的验证文件 authorized_keys 中

ssh-copy-id 192.168.98.137    //B的IP,过程需要输入B的密码

此时 A锁(id_rsa.pub)在 B的验证文件(authorized_keys)中开始发挥作用,相当于给B下了一个A锁(authorized_keys)

③验证使用A免密登录B

实际上,是用 A钥匙(id_rsa)去开 A锁(authorized_keys )

实例:使用远程登录工具登录

①A生成密钥:ssh-keygen,密钥文件在 /root/.ssh/ 目录下

A生成配套的A锁(id_rsa.pub)和A钥匙(id_rsa),但此时A锁还不能起作用

②A将自己公钥文件 id_rsa.pub 内容写进A自己的验证文件 authorized_keys 中

cd /root/.ssh/

cat id_rsa.pub > authorized_keys

此时 A锁(id_rsa.pub)在 A的验证文件(authorized_keys)中开始发挥作用,相当于给A自己下了一个A锁(authorized_keys)

③将A的私钥文件 id_rsa 下载至本地,并远程工具使用该密钥登录A

实际上就是远程登录工具拿A钥匙(id_rsa)开A给自己下的A锁(authorized_keys)

实例:ssh指定密钥登录

A使用密钥登录B

①B生成密钥:ssh-keygen,密钥文件在 /root/.ssh/ 目录下

B生成配套的B锁(id_rsa.pub)和B钥匙(id_rsa),但此时B锁还不能起作用

②B将自己公钥文件 id_rsa.pub 内容写进B自己的验证文件 authorized_keys 中

cd /root/.ssh/

cat id_rsa.pub > authorized_keys

此时 B锁(id_rsa.pub)在 B的验证文件(authorized_keys)中开始发挥作用,相当于给B自己下了一个B锁(authorized_keys)

③A获取B的私钥文件id_rsa,并使用该密钥登录B

scp 192.168.98.137:/root/.ssh/id_rsa /root/  //192.168.98.137为B的IP

ssh 192.168.98.137 -i id_rsa

实际上是给A一把B钥匙(id_rsa)

A拿着B钥匙(id_rsa)去开B下在自己身上的B锁(authorized_keys)

scp远程拷贝

把文件拷贝到其他服务器:scp 本地文件名 目标IP:目标存放路径

从其他服务器拷贝文件:scp 目标IP:目标文件名 本地存放路径

注意:

-r:远程拷贝目录

如果服务器之间做了免密登录,那么远程拷贝不需要密码

企业案例一

ssh远程连接服务器出现以下报错:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
7e:b5:1d:3b:1c:81:d2:6b:d2:96:f7:1a:1f:e8:16:27.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:2
RSA host key for 172.16.50.240 has changed and you have requested strict checking.
Host key verification failed.

问题:指纹不匹配

解决方法:rm ~/.ssh/known_hosts //删除当前家目录已建立过连接主机的密钥

企业案例二

在阿里云北京4区可用区二有50台服务器,这50台服务器使用同一个私有网络(10.0.0.0/24),只有一台服务器有公网IP,剩下的49台怎么连接?

50台服务器的内网IP为:10.0.0.10 - 10.0.0.60

50台服务器采用内网可以互相访问

A:私网:10.0.0.10  公网:1.98.42.123

先用远程工具连A,A采用密钥去连接在同一个内网中能够使用内网互相访问的服务器

这篇关于Day22 SSH远程管理服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936129

相关文章

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,