如何在linux安装ssh

在多数 Linux 系统中,执行 sudo apt install openssh-server(Debian/Ubuntu)或 sudo yum install openssh-server(CentOS/RHEL),再运行 sudo systemctl enable --now sshd 即可完成 SSH 安装与

以下是关于 如何在 Linux 系统中安装并配置 SSH(Secure Shell) 的完整指南,涵盖多种主流发行版的操作步骤、核心概念解析及实用技巧:

如何在linux安装ssh


前置知识:什么是 SSH?

SSH(Secure Shell)是一种加密的网络协议,用于替代传统的 Telnet/FTP 等明文传输工具,其核心功能包括:
安全远程登录:通过密码或密钥认证实现终端访问;
文件传输:支持 scp(安全拷贝)和 rsync
隧道代理:可穿透防火墙建立加密通道;
跨平台兼容:适用于 Windows/macOS/Linux/Unix 系统。

⚠️ 注意:默认情况下,大多数 Linux 发行版未预装 OpenSSH 服务器组件,需手动安装。


按发行版分类的安装方法

| 发行版类型 | 包管理器 | 安装命令 | 备注 |

|——————|——————-|———————————–|————————–|
| Ubuntu/Debian | apt | sudo apt update && sudo apt install openssh-server | 推荐优先执行更新源同步 |
| CentOS/RHEL | dnf/yum | sudo yum install -y openssh-serversudo dnf install -y openssh-server | RHEL 8+ 建议使用 dnf |
| Arch Linux | pacman | sudo pacman -S openssh | 自动处理依赖关系 |
| Fedora | dnf | sudo dnf install -y openssh-server| 与 CentOS 命令一致 |
| openSUSE | zypper | sudo zypper install openssh | YaST 图形界面也可操作 |

通用验证方式
安装完成后,可通过以下命令确认版本:

ssh -V
# 输出示例:OpenSSH_8.9p1, OpenSSL 3.0.7...

服务管理与启动

启动/停止 SSH 服务

操作 Ubuntu/Debian CentOS/RHEL Arch/Fedora
启动服务 sudo systemctl start sshd sudo systemctl start sshd sudo systemctl start sshd
开机自启 sudo systemctl enable sshd sudo systemctl enable sshd sudo systemctl enable sshd
重启服务 sudo systemctl restart sshd sudo systemctl restart sshd sudo systemctl restart sshd
查看状态 systemctl status sshd systemctl status sshd systemctl status sshd

💡 提示:若出现 “Failed to start” 错误,可尝试 journalctl -xe 查看日志定位问题。

防火墙配置(关键步骤!)

若服务器启用了防火墙(如 ufwfirewalld),必须放行 SSH 默认端口 22

  • Ubuntu/Debian
    sudo ufw allow 22/tcp
    sudo ufw reload
  • CentOS/RHEL
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload

基础配置优化

主配置文件路径

所有发行版的主配置文件均为 /etc/ssh/sshd_config,常用参数说明如下表:

如何在linux安装ssh

参数 默认值 作用 推荐修改建议
Port 22 SSH 监听端口 生产环境建议改为非标准端口
PermitRootLogin yes 是否允许 root 直接登录 改为 without-password 更安全
PasswordAuthentication yes 是否启用密码认证 高危场景建议设为 no
PubkeyAuthentication yes 是否启用公钥认证 保持默认
X11Forwarding no 是否启用 X11 转发 根据需求调整
AllowUsers (空) 白名单机制,仅允许指定用户登录 限制敏感账户暴露
DenyUsers (空) 黑名单机制,禁止指定用户登录 配合 AllowUsers 使用

修改生效方式
编辑保存后执行 sudo systemctl restart sshd

生成 SSH 密钥对(推荐)

相比密码登录,密钥认证更安全且便捷:

# 本地机器执行(客户端)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 按提示选择保存路径(默认 ~/.ssh/id_rsa)
# 将公钥上传至服务器
ssh-copy-id user@remote_host

📌 注意:首次使用时需输入服务器密码,后续可直接免密登录。


连接测试与排错

本地连接测试

ssh user@localhost
# 或通过 IP 地址
ssh user@192.168.1.100

成功标志:显示欢迎信息并进入目标系统的终端。

常见错误及解决方案

错误现象 可能原因 解决方法
Connection refused SSH 服务未运行/防火墙拦截 systemctl status sshd + 检查防火墙规则
Permission denied 密码错误/账户被禁用 重置密码或检查 /etc/passwd
No route to host 网络不通/IP 错误 ping 测试连通性
Too many authentication failures 触发防暴力破解机制 等待几分钟后重试

高级安全实践

禁用 root 直接登录

修改 /etc/ssh/sshd_config

PermitRootLogin no

并通过普通用户提权执行特权操作。

更改默认端口

Port 22 改为其他高位端口(如 2222),并在防火墙中同步更新规则。

如何在linux安装ssh

定期审计日志

查看 /var/log/auth.log 分析登录尝试记录:

grep "Failed password" /var/log/auth.log
# 查找可疑登录行为

相关问答 FAQs

Q1: 为什么我明明安装了 SSH,但依然无法从外部连接?

A: 请按以下顺序排查:

  1. 确认服务已启动且设置为开机自启 → systemctl status sshd
  2. 检查防火墙是否放行了 SSH 端口(默认 22);
  3. 确保 SELinux 未阻止连接(CentOS/RHEL 特有),可临时关闭测试:setenforce 0
  4. 核对 /etc/ssh/sshd_config 中的 ListenAddress 是否绑定了正确的网卡 IP。

Q2: 如何限制某个用户只能通过密钥登录?

A: 编辑该用户的专属配置文件 /etc/ssh/sshd_config.d/user_specific(需自行创建),添加以下内容:

Match User restricted_user
    PasswordAuthentication no
    ForceCommand /bin/echo "Access denied."

此配置会禁止该用户使用密码登录,并对非法请求返回固定提示。


通过以上步骤,您已完成 SSH 服务的完整部署与基础安全加固,建议定期更新系统补丁(如 OpenSSH 漏洞修复),并采用最小权限

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/107001.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年8月17日 12:31
下一篇 2025年8月17日 12:34

相关推荐

  • Linux中Xorg如何启动?详细步骤

    Xorg通常由显示管理器(如GDM、LightDM)在用户登录图形界面时自动启动,也可在命令行使用startx手动启动,需确保已安装Xorg和显卡驱动。

    2025年6月14日
    24500
  • Linux PAK文件如何安装?

    通常需将.pak文件放入对应应用指定目录(如游戏mod的~/.local/share/Steam/steamapps/common/游戏名/),非标准安装包,具体位置由软件决定。

    2025年5月30日
    3200
  • Linux如何查IP

    在Linux中查询IP地址,常用两种方法:,1. 使用传统命令:ifconfig(若未安装,需通过sudo apt install net-tools安装),2. 使用现代命令:ip addr show 或简写 ip a,这两个命令会列出网络接口及其对应的IP地址信息(如eth0、wlan0等),执行时可能需要sudo权限。

    2025年6月7日
    4500
  • Linux如何查看IP地址?

    查看Linux IP地址的常用方法:,1. **推荐命令:** ip addr show 或简写 ip a,查看所有网络接口的详细信息。,2. **传统命令:** ifconfig(可能需要安装net-tools包),显示接口配置。,3. **快速查看:** hostname -I(注意是大写字母 I),显示所有非回环 IP 地址。

    2025年6月12日
    3300
  • Linux如何安装Google浏览器?

    访问官网下载deb/rpm安装包,双击安装或终端执行sudo dpkg -i *.deb/sudo rpm -i *.rpm命令,也可添加官方仓库通过apt/yum安装。

    2025年6月9日
    4800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN