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

Ubuntu中安装和配置SSH的完全指南

目录

前言

第1步:安装SSH服务器

第2步:检查防火墙设置

第3步:连接到SSH服务器

第4步:配置SSH服务器(可选)

更改SSH端口

禁用root登录

第5步:公钥认证(建议)

结论


前言

Secure Shell (SSH) 是一种网络协议,允许用户通过加密的通道安全地访问另一台计算机。SSH广泛用于远程登录系统、管理服务器和进行安全数据传输。在Ubuntu这样的Linux发行版中,安装和配置SSH服务是一项常见且相对简单的任务。以下是在Ubuntu系统上安装和配置SSH的步骤。

第1步:安装SSH服务器

首先,你需要在Ubuntu系统上安装SSH服务器软件包。打开终端(可以使用快捷键Ctrl + Alt + T)并输入以下命令来安装openssh-server

sudo apt update
sudo apt install openssh-server

安装完成后,SSH服务会自动启动。你可以使用以下命令来检查SSH服务的状态:

sudo systemctl status ssh

如果服务正在运行,你将看到“active (running)”的状态信息。

第2步:检查防火墙设置

确保Ubuntu防火墙允许SSH连接。默认情况下,SSH使用22号端口。你可以使用以下命令来允许22号端口通过Ubuntu防火墙:

sudo ufw allow ssh

如果你更改了SSH默认端口,则需要允许那个特定的端口而不是22号端口。

第3步:连接到SSH服务器

要从另一台计算机连接到你的Ubuntu SSH服务器,你可以使用ssh命令,格式如下:

ssh username@server-ip-address

其中username是你想要登录的Ubuntu系统上的用户账号,server-ip-address是服务器的IP地址。

如果是第一次连接到该服务器,你可能会看到一个消息询问是否接受主机的公钥。输入yes以继续并添加主机到你的known_hosts文件。

第4步:配置SSH服务器(可选)

你可以编辑SSH配置文件/etc/ssh/sshd_config来调整各种设置,例如更改默认端口、禁用root用户登录等。使用文本编辑器打开配置文件,例如使用nano:

sudo nano /etc/ssh/sshd_config

更改SSH端口

在配置文件中找到#Port 22这一行,去掉#并将22改为你选择的端口号:

Port 2222

保存文件并退出编辑器后,重启SSH服务使更改生效:

sudo systemctl restart ssh

禁用root登录

出于安全考虑,建议禁止通过SSH以root用户身份直接登录。找到配置文件中的PermitRootLogin这一行,并将其更改为:

PermitRootLogin no

同样,保存并重启SSH服务。

第5步:公钥认证(建议)

为了增强安全性,你可以配置SSH使用密钥对而不是密码来认证。首先,在客户端机器上生成一个SSH密钥对:

ssh-keygen

然后将公钥复制到服务器上的~/.ssh/authorized_keys文件中:

ssh-copy-id username@server-ip-address

之后,你就可以在没有密码的情况下安全地登录服务器了。

结论

恭喜!你现在已经成功地在Ubuntu系统上安装并配置了SSH服务。通过正确配置,SSH不仅提供了远程访问的便利性,也保护了数据和系统免遭未经授权的访问。记得总是关注SSH的安全实践,并及时更新你的系统和软件以保持安全性。

相关文章:

  • LeetCode 算法:三数之和c++
  • Java中的泛型类型参数详解
  • 代碼隨想录 day22|day23
  • 7EPhone云手机各功能详解
  • Java 面试题:Java 的动态代理是基于什么原理?
  • js文件 .mjs和.umd.js结尾的文件的区别
  • 【光伏预测】基于BP神经网络实现光伏发电功率预测附Matlab代码
  • Spring Cloud Gateway 集成 Nacos、Knife4j
  • 计算机网络7——网络安全3 互联网使用的安全协议
  • 网关(Gateway)- 自定义过滤器工厂
  • 基于安卓的虫害识别软件设计--(2)模型性能可视化|混淆矩阵、热力图
  • 【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版6(附带项目源码)
  • x264 参考帧管理原理:b_ref_reorder 数组变量
  • Vue:路由管理vue-router
  • 信息标记形式 (XML, JSON, YAML)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular 2 DI - IoC DI - 1
  • Angular Elements 及其运作原理
  • Angular6错误 Service: No provider for Renderer2
  • docker python 配置
  • gops —— Go 程序诊断分析工具
  • Hexo+码云+git快速搭建免费的静态Blog
  • HTTP中GET与POST的区别 99%的错误认识
  • JavaScript标准库系列——Math对象和Date对象(二)
  • MySQL用户中的%到底包不包括localhost?
  • NSTimer学习笔记
  • Python - 闭包Closure
  • Redis在Web项目中的应用与实践
  • SOFAMosn配置模型
  • SQLServer插入数据
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​520就是要宠粉,你的心头书我买单
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ## 1.3.Git命令
  • #70结构体案例1(导师,学生,成绩)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (26)4.7 字符函数和字符串函数
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (undone) MIT6.824 Lecture1 笔记
  • (笔试题)合法字符串
  • (差分)胡桃爱原石
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (南京观海微电子)——COF介绍
  • (三十五)大数据实战——Superset可视化平台搭建
  • (五)网络优化与超参数选择--九五小庞
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)nsfocus-绿盟科技笔试题目
  • (转)创业家杂志:UCWEB天使第一步
  • (转)德国人的记事本