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

Ubuntu中SSH服务器安装使用

SSH服务安装

1. 安装 OpenSSH

安装 SSH 服务端(允许远程登录)

sudo apt update
sudo apt install openssh-server

安装 SSH 客户端(用于连接其他服务器)

sudo apt install openssh-client

2. 检查 SSH 服务状态

sudo systemctl status ssh
  • 如果未运行,启动 SSH:

    sudo systemctl start ssh
    
  • 设置开机自启

    sudo systemctl enable ssh
    

3. 配置 SSH(可选)

默认配置文件位于 /etc/ssh/sshd_config,可修改以提高安全性:

sudo nano /etc/ssh/sshd_config

常见优化选项

Port 2222                  # 更改默认端口(22 → 2222,防止扫描)
PermitRootLogin no         # 禁止 root 远程登录
PasswordAuthentication no  # 禁用密码登录(仅密钥登录更安全)
AllowUsers aixi            # 只允许特定用户登录

应用更改

sudo systemctl restart ssh

4. 允许 SSH 通过防火墙

如果启用了 ufw,需放行 SSH:

sudo ufw allow 22          # 如果使用默认端口 22
sudo ufw allow 2222        # 如果修改了端口(如 2222)
sudo ufw enable           # 启用防火墙
sudo ufw status           # 查看规则

5. 远程连接 SSH

从 Linux/Mac 连接

ssh username@server_ip -p 22
  • username:你的 Ubuntu 用户名
  • server_ip:服务器 IP 地址(用 ip ahostname -I 查看)
  • -p 22:如果修改了端口(如 2222),需指定

从 Windows 连接

使用 PuTTYWindows Terminal,输入服务器 IP 和端口。


6. 卸载 OpenSSH

移除 SSH 服务端

sudo apt remove --purge openssh-server

移除 SSH 客户端

sudo apt remove --purge openssh-client

清理配置

sudo apt autoremove

常见问题

1. “Connection refused” 错误

  • 检查 SSH 是否运行:sudo systemctl status ssh
  • 检查防火墙是否放行端口:sudo ufw status

2. 忘记 SSH 端口

查看当前配置:

sudo grep Port /etc/ssh/sshd_config

3. 密钥登录(更安全)

生成密钥对:

ssh-keygen -t ed25519

将公钥上传到服务器:

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip
http://www.lryc.cn/news/2401190.html

相关文章:

  • 【AI论文】SWE-rebench:一个用于软件工程代理的任务收集和净化评估的自动化管道
  • Flask文件处理全攻略:安全上传下载与异常处理实战
  • 【算法深练】分组循环:“分”出条理,化繁为简
  • 焊缝缺陷焊接缺陷识别分割数据集labelme格式5543张4类别
  • 关于scrapy在pycharm中run可以运行,但是debug不行的问题
  • Java高级 | 【实验四】Springboot 获取前端数据与返回Json数据
  • 云数据库选型指南:关系型 vs NoSQL vs NewSQL的企业决策
  • Prj08--8088单板机C语言8255读取按键码
  • 蜜獾算法(HBA,Honey Badger Algorithm)
  • Modbus转Ethernet IP网关助力罗克韦尔PLC数据交互
  • 飞算JavaAI 炫技赛重磅回归!用智能编码攻克老项目重构难题
  • 青少年编程与数学 02-020 C#程序设计基础 15课题、异常处理
  • Electron打包前端和后端为exe
  • unix/linux,sudo,一个强大且灵活的工具,允许一个被授权的用户以另一个用户(通常是root,即超级用户)的身份来执行命令
  • JavaScript 二维数组初始化:为什么 fill([]) 是个大坑?
  • 项目任务,修改svip用户的存储空间。
  • TypeScript 全面学习指南 (2025最新版)
  • 【redis】过期策略 懒惰删除
  • Docker或Docker-Compose时间时区配置
  • 如何在IDE中通过Spark操作Hive
  • ToolsSet之:XML工具
  • keepalived定制日志bug
  • ElasticSearch+Gin+Gorm简单示例
  • 数据库系统概论(十三)详细讲解SQL中数据更新(插入,修改与更新)
  • JVMTI 在安卓逆向工程中的应用
  • 极客时间-《搞定音频技术》-学习笔记
  • 网络攻防技术十三:网络防火墙
  • Express 集成Sequelize+Sqlite3 默认开启WAL 进程间通信 Conf 打包成可执行 exe 文件
  • CppCon 2015 学习:A C++14 Approach to Dates and Times
  • 基于CNN的OFDM-IM信号检测系统设计与实现