当前位置: 首页 > news >正文

在 Debian 上使用和配置 SSH 的指南

SSH(Secure Shell)是用于在不安全网络上安全登录远程计算机和执行命令的协议。本文将详细介绍如何在 Debian 系统上安装、配置和使用 SSH。

1. 安装 SSH

首先,您需要安装 OpenSSH 服务器和客户端(也可直接安装服务器端:openssh-server)。您可以使用以下命令来安装它们:

sudo apt update
sudo apt install openssh-server openssh-client

安装完成后,您可以通过以下命令检查 SSH 服务的状态:

sudo systemctl status ssh

2. 配置 SSH 服务器

SSH 服务器的配置文件位于 /etc/ssh/sshd_config。您可以使用您喜欢的文本编辑器来编辑它,例如:

sudo nano /etc/ssh/sshd_config

在配置文件中,您可以进行多种设置,例如更改默认端口、禁止 root 用户登录、启用公钥认证等。

更改默认端口

默认情况下,SSH 使用端口 22。为了增加安全性,您可以更改为其他端口,例如 2222:

Port 2222

禁止 root 用户登录

为了提高安全性,可以禁止 root 用户直接通过 SSH 登录:

PermitRootLogin no

启用公钥认证

确保以下行未被注释(没有 # 符号)并且值为 yes:

PubkeyAuthentication yes

完成配置后,保存文件并重新启动 SSH 服务以使更改生效:

sudo systemctl restart ssh

3. 使用 SSH 连接到远程服务器

现在,您可以使用 SSH 连接到远程服务器。假设远程服务器的 IP 地址是 192.168.1.100,用户名是 user,您可以使用以下命令进行连接:

ssh user@192.168.1.100

如果您更改了 SSH 端口,例如更改为 2222,请使用以下命令:

ssh -p 2222 user@192.168.1.100

4. 使用公钥认证

公钥认证可以提高 SSH 连接的安全性。以下是设置公钥认证的步骤:

生成公钥和私钥

在您的本地计算机上,使用以下命令生成一对公钥和私钥:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作,默认情况下会在 ~/.ssh 目录下生成 id_rsa(私钥)和 id_rsa.pub(公钥)文件。

将公钥复制到远程服务器

使用以下命令将公钥复制到远程服务器:

ssh-copy-id user@192.168.1.100

如果您更改了 SSH 端口,请使用以下命令:

ssh-copy-id -p 2222 user@192.168.1.100

完成后,您应该能够使用公钥认证登录远程服务器,而无需输入密码。

5. SSH 连接示例

假设您已经按照上述步骤配置好了 SSH 服务器和客户端,现在您可以尝试连接到远程服务器。

连接示例

使用默认端口(22):

ssh user@192.168.1.100

使用自定义端口(例如 2222):

ssh -p 2222 user@192.168.1.100

使用公钥认证:

ssh user@192.168.1.100

6. 结论

通过上述步骤,您已经在 Debian 系统上成功安装、配置和使用了 SSH。SSH 提供了一种安全、可靠的方式来远程管理您的服务器,希望本文对您有所帮助。

相关文章:

在 Debian 上使用和配置 SSH 的指南

SSH(Secure Shell)是用于在不安全网络上安全登录远程计算机和执行命令的协议。本文将详细介绍如何在 Debian 系统上安装、配置和使用 SSH。 1. 安装 SSH 首先,您需要安装 OpenSSH 服务器和客户端(也可直接安装服务器端&#xff…...

Sleep | 纺锤波-慢波耦合与解决问题的能力:年龄的影响

摘要 本研究考察了衰老如何影响睡眠在巩固新学习的认知策略中的作用。共纳入40名健康年轻人(20-35岁)和30名健康老年人(60-85岁)。参与者接受了河内塔(ToH)任务的训练,然后,每个年龄组的一半参与者被分配到90分钟的午睡条件下,另一半则保持清…...

代码随想录 day 30

回溯总结: 相当于暴力for循环,其目的用递归控制for循环嵌套的数量。当剪枝时,就可以使得嵌套数量减少。把回溯问题抽象一颗树比较好懂。并且使得代码更简洁。 对于组合问题,什么时候需要startIndex呢? 在一个集合求组合…...

SD NAND(贴片式TF卡)坏块管理技术问答

Q1:什么是NAND的块(Block))? 每个Nand包含一个或多个Chip。Chip是可以独立执行命令并上报状态的最小单元。 每个Chip包含一个或多个plane。不同的plane间可以并发操作,不过有一些限制。 每个plane包含多block,block是最小擦除单元(擦除后为…...

学习使用js监测浏览器窗口大小变化

学习使用js监测浏览器窗口大小变化 在JavaScript中,可以通过监听resize事件来检测浏览器窗口的大小变化。以下是一个简单的示例代码,用于检测浏览器窗口大小的变化并在控制台输出新的窗口尺寸: javascript // 定义一个处理窗口大小变化的函数…...

微服务开发与实战Day02 - Docker

一、Docker快速入门 快速构建、运行、管理应用的工具 安装部署教程:Docs 1. 部署MySQL 测试连接: 镜像和容器 当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。镜像不仅包含应用本身&#xff…...

蒙层(css)

如何在 Vue 中实现一个包含图像和蒙层效果的组件?这个组件根据某个条件显示或隐藏蒙层,用于表示图像是否已读。 1. 创建基础模板 首先,我们在模板中使用 div 包裹我们的图像组件 GraphImage,并为最外层 div 设置 position: relat…...

SpringBoot前端URL访问本地磁盘文件

SpringBoot前端通过 URL访问本地磁盘文件,其实就是 SpringBoot访问web中的静态资源的处理方式。 SpringBoot 访问web中的静态资源:https://blog.csdn.net/qq_42402854/article/details/90295079 首先,我们知道浏览器访问本地磁盘文件的方式为…...

【WP】猿人学2_js混淆_动态cookie

https://match.yuanrenxue.cn/match/2 抓包分析 根据发包加密参数在cookie中 删除cookie带的m参数,重新点击其他页面,然后使用Fiddler抓包 第一个包请求没有携带m,但是后面的请求是附带了m了,所以m就是在此之间生成 查看不带…...

基于springboot实现民族婚纱预定系统项目【项目源码+论文说明】

基于springboot实现民族婚纱预定系统的设计演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本民族婚纱预定系统就是在这样的大环境下诞生,其可…...

String常用操作

String常用方法 构造字符串 常用的构造字符串有3种: 1.直接赋值String s "abcd"; 2.实例化调用构造方法String s new String("abcd"); 3.实例化传字符数组 char[] ch {a,b,c,d}; String s new String(ch);字符串比较 比较 比较的是两个…...

git: 批量删除分支

环境: window11git version 2.42.0git-bash.exe window环境下: 1. 批量删除本地 git branch |grep xxx |xargs git branch -D比如: 想批量删除本地含有 release 关键字的分支: 2. 批量删除远程 git branch -r | grep xxxx | …...

【第5章】SpringBoot实战篇之登录模式切换

文章目录 前言一、接口扩展1. LoginStorage2. LocalLoginStorage3. RedisLoginStorage4. 参数配置 二、登录相关接口改动1.登录接口2. 登录拦截器 总结 前言 前面分别介绍了本地Map和redis存储用户登录信息,但是第二天我登录就出现问题了,因为我Redis部…...

2024最新华为OD算法题目

在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。请你统计机房中最大的局域网包含的服务器个数。 输入描述 第一行输入两个正整数,n和m,…...

Redis集群方案有哪些?

今天咱们来聊聊Redis集群方案,想象一下Redis是个超级大的储物柜,里面放满了你各种各样的宝贝(数据)。但随着宝贝越来越多,一个储物柜不够用了,这时候我们就得想方设法扩大空间,还要保证找东西依…...

数字影像产业园的三大赋能:科技、创新与无限可能

数字影像产业园作为文创产业的重要载体,以科技为核心驱动力,不断推动产业的技术革新和升级。 园区内汇聚了最前沿的数字技术资源,高清摄影设备、虚拟现实技术、人工智能应用等尖端科技在这里得到广泛应用,不仅提升了生产效率&…...

枚举(enum)+联合体(union)

枚举联合 一.枚举类型1.枚举类型的声明2.枚举类型的优点3.枚举类型的使用 二.联合体1.联合体类型的声明2.联合体的特点3.相同成员的结构体和联合体对比4.联合体大小的计算5.联合体的练习(判断大小端)6.联合体节省空间例题 一.枚举类型 1.枚举类型的声明…...

postman教程-15-前置脚本

上一小节我们学习了Postman生成随机数的方法,本小节我们讲解一下Postman前置脚本的使用方法。 Postman中的前置脚本(Pre-request Script)允许你在发送请求之前运行JavaScript代码。这可以用于修改请求头、查询参数、请求体等,或者…...

AIGC会带来失业潮吗?紧紧跟时代第一步,如何学习AIGC

会,但AI淘汰的始终是跟不上时代的人。 现在很多公司都有AI培训,不仅GPT,还有Midjourney、Stable DIffusion等一系列AI工具。 像我们公司虽然今年招的少,但也会对新招的应届生统一进行AI培训。 用任正非先生的话来说就是&#x…...

C++第二十四弹---从零开始模拟STL中的list(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、基本结构 2、基本函数实现 2.1、默认构造函数 2.2、尾插数据 3、迭代器的封装 3.1、迭代器的基本结构 3.2、迭代器重载函数的实现 4、迭…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

go 里面的指针

指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...