如何启动 Linux Debian/Ubuntu 等 SSH 服务器

news/2025/2/21 13:10:56/

文章目录

  • 引言
  • 正文
    • 一、什么是 SSH?
    • 二、安装 SSH 服务器
    • 三、验证 SSH 服务是否运行
    • 四、配置 SSH 服务器
    • 五、使用 SSH 客户端连接到服务器
    • 六、安全优化
    • 七、常见问题及解决方法
  • 总结

引言

SSH(Secure Shell)是一种用于远程登录和执行命令的安全协议。它是 Linux 系统管理员和开发者常用的工具之一。本文将详细介绍如何在 Debian 和 Ubuntu 等 Linux 发行版上安装、配置和启动 SSH 服务器。


正文

一、什么是 SSH?

SSH 是一种网络协议,用于在不安全的网络中安全地传输数据。它通过加密通信通道来保护用户的密码和数据不被窃取。SSH 服务器允许用户通过网络远程登录到 Linux 系统,并执行各种命令。


二、安装 SSH 服务器

在 Debian/Ubuntu 系统上,默认情况下可能没有安装 SSH 服务器。我们需要手动安装它。

  1. 更新软件包列表
    在安装任何软件之前,建议先更新软件包列表:
sudo apt update 
  1. 安装 OpenSSH 服务器
    OpenSSH 是一个广泛使用的 SSH 实现。我们可以使用以下命令安装 OpenSSH 服务器:
sudo apt install openssh-server 
  1. 启动 SSH 服务
    安装完成后,SSH 服务会自动启动。如果需要手动启动,可以使用以下命令:
sudo systemctl start ssh 
  1. 设置 SSH 服务开机自启动
    为了确保 SSH 服务在系统重启后自动启动,可以启用开机自启动:
sudo systemctl enable ssh 

三、验证 SSH 服务是否运行

安装并启动 SSH 服务后,可以通过以下方法验证其是否正常运行:

  1. 检查 SSH 服务状态
sudo systemctl status ssh 

如果显示 active (running),则表示 SSH 服务正在运行。

  1. 查看 SSH 端口监听情况
sudo netstat -tuln | grep ssh 

正常情况下,会看到 tcp 端口 22(默认 SSH 端口)正在监听。


四、配置 SSH 服务器

默认情况下,SSH 服务器已经可以使用,但为了安全性和功能性,我们可能需要对其进行一些配置。

  1. 修改 SSH 配置文件
    SSH 的主配置文件位于 /etc/ssh/sshd_config。我们可以使用文本编辑器(如 vimnano)打开该文件:
sudo nano /etc/ssh/sshd_config 
  1. 常见配置选项
  • 修改默认端口
    如果希望更改默认的 SSH 端口(22),可以找到以下行并修改:
    #Port 22 
    Port 2222 
    
  • 禁用 root 登录
    为了提高安全性,建议禁用 root 用户通过 SSH 登录:
    PermitRootLogin no 
    
  • 启用公钥认证
    公钥认证比密码认证更安全。确保以下行未被注释:
    PubkeyAuthentication yes 
    
  • 限制允许登录的用户
    如果只想允许特定用户登录,可以添加以下行:
    AllowUsers username 
    
  1. 保存并应用配置
    修改完配置文件后,保存并退出编辑器。然后重启 SSH 服务以使更改生效:
sudo systemctl restart ssh 

五、使用 SSH 客户端连接到服务器

安装并配置好 SSH 服务器后,可以通过 SSH 客户端(如 TerminalPuTTY)连接到服务器。

  1. 使用命令行连接
    在终端中输入以下命令:
ssh username@server_ip -p port_number 

其中:

  • username 是服务器上的用户名。
  • server_ip 是服务器的 IP 地址。
  • port_number 是 SSH 端口(默认为 22)。
  1. 示例
    假设服务器的 IP 地址是 192.168.1.100,用户名是 user,端口是 2222,则命令如下:
ssh user@192.168.1.100 -p 2222 

六、安全优化

为了进一步提高 SSH 服务器的安全性,可以采取以下措施:

  1. 使用密钥认证
    生成 SSH 密钥对并将其分发到客户端:
ssh-keygen -t rsa 

将公钥复制到服务器:

ssh-copy-id username@server_ip 
  1. 禁用密码认证
    /etc/ssh/sshd_config 中添加以下行:
PasswordAuthentication no 
  1. 配置防火墙
    使用 ufwiptables 防火墙限制对 SSH 端口的访问。例如:
sudo ufw allow 2222/tcp 

七、常见问题及解决方法

  1. 连接被拒绝
  • 检查 SSH 服务是否正在运行:
    sudo systemctl status ssh 
    
  • 确保防火墙允许 SSH 端口通过。
  1. 密码错误
  • 确保输入的用户名和密码正确。
  • 检查 /var/log/auth.log 文件以获取更多信息。
  1. 端口冲突
  • 确保没有其他程序占用 SSH 端口。

总结

通过本文的介绍,您应该能够轻松地在 Debian/Ubuntu 系统上安装、配置和启动 SSH 服务器。SSH 是一个强大而灵活的工具,掌握它的基本使用和配置将极大提升您的工作效率和系统的安全性。


http://www.ppmy.cn/news/1573598.html

相关文章

uniapp 滚动尺

scale组件代码&#xff08;部分class样式使用到了uview1.0的样式&#xff09; <template><view><view class"scale"><view class"pointer u-flex-col u-col-center"><u-icon name"arrow-down-fill" size"26&qu…

变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)

我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告&#xff0c;不像常识类问题&#xff0c;它的相关Document更多而且更分散&#xff0c;日常报告代表数据库里有很多它的内容&#xff0c;而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度&#xff0…

AI全栈开发_人工智能AI大模型 Prompt提示词工程详解(全方位介绍及运用)

AI引领的第四次工业革命正席卷而来&#xff0c;如何精准把握这一历史性的机遇&#xff0c;将成为我们这一代人不容忽视且需深入思考与积极行动的重要课题。未来几年AI将会像计算机一样快速普及&#xff0c;面对这一历史性的第一波红利&#xff0c;你是否已准备好把握机遇&#…

火语言RPA--Excel打开文档

【组件功能】&#xff1a;打开已有或者新建Excel文档&#xff0c;并实例化初始化操作 配置预览 配置说明 Excel文件路径 支持T或# 默认FLOW输入项 新建或打开Excel文档文件路径。 打开方式 打开已有Excel&#xff1a;打开指定Excel文件到当前Excel对象 新建Excel&#xff…

HarmonyOS全栈开发指南:从入门到精通,构建万物智联的未来生态(四)

四、UI开发体系 16. ArkUI声明式语法与类Web开发范式 4.1.1 ArkUI简介 ArkUI是HarmonyOS提供的一套用于构建跨平台用户界面的声明式开发框架。它借鉴了现代前端框架的设计理念&#xff0c;通过声明式的方式描述UI界面&#xff0c;使得开发者可以更加专注于业务逻辑的实现&am…

DeepSeek R1与互联网医院的深度融合:金医慧通案例的创新实践与启示

一、引言 1.1 研究背景与意义 随着互联网技术的迅猛发展&#xff0c;互联网医院作为一种新型医疗服务模式&#xff0c;正逐渐改变着传统医疗行业的格局。自 2014 年国家卫生计生委发布《关于促进互联网医疗健康发展的指导意见》以来&#xff0c;互联网医院在政策支持下蓬勃发…

DeepSeek 云原生分布式部署的深度实践与疑难解析—— 从零到生产级落地的全链路避坑指南

一、云原生环境下的部署架构设计 1.1 典型架构拓扑 关键点&#xff1a;Master 节点需保证强一致性&#xff0c;Worker 节点需支持异构硬件调度。 1.2 配置模板陷阱 问题现象&#xff1a; 直接使用官方 Helm Chart 部署后出现 Pod 频繁重启 日志报错 ResourceQuota exceeded…

Oracle和MySQL的分页查询语句

在数据库系统中&#xff0c;特别是在Oracle和MySQL中&#xff0c;分页查询是一种常见需求&#xff0c;用于处理大量数据时只展示部分结果。下面分别介绍在Oracle和MySQL中实现分页查询的语句。 Oracle中的分页 在Oracle中&#xff0c;你可以使用ROWNUM或者FETCH FIRST和OFFSE…