问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何配置 SSH 服务:详细教程

创作时间:
作者:
@小白创作中心

如何配置 SSH 服务:详细教程

引用
CSDN
1.
https://m.blog.csdn.net/Hogwartstester/article/details/141423248

前言

SSH(Secure Shell)是一个用于安全远程登录和其他网络服务的协议。在Linux或Unix系统中,SSH是管理员常用的工具,可以远程管理服务器、执行命令以及传输文件。在这篇文章中,我们将详细介绍如何配置SSH服务,包括安装、配置、用户管理、安全性设置等。

安装 SSH 服务

在大多数Linux发行版中,SSH服务通过OpenSSH包来提供。

  • 检查是否已安装OpenSSH:
ssh -V

运行此命令可以查看当前系统中是否已经安装了OpenSSH客户端。

  • 安装OpenSSH:
    如果系统中未安装OpenSSH,你可以通过包管理器安装:

  • Ubuntu/Debian:

sudo apt-get update
sudo apt-get install openssh-server
  • CentOS/RHEL:
sudo yum install openssh-server
  • Fedora:
sudo dnf install openssh-server

启动并启用SSH服务:

安装完成后,确保SSH服务已启动并在系统启动时自动启动。

  • 启动SSH服务:
sudo systemctl start sshd
  • 设置开机启动:
sudo systemctl enable sshd
  • 检查SSH服务状态:
sudo systemctl status sshd

该命令可以帮助你确认SSH服务是否正在运行。

配置 SSH 服务

SSH服务的配置文件通常位于/etc/ssh/sshd_config。你可以通过编辑这个文件来自定义SSH服务的行为。

  • 编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config

使用你喜欢的文本编辑器(如nano、vi等)打开配置文件。

  • 配置常用选项:
  • 更改默认端口:
Port 2222

默认情况下,SSH服务监听22端口。为了提高安全性,你可以更改默认端口。

  • 禁用Root登录:
PermitRootLogin no

禁用Root用户直接通过SSH登录,可以增加系统安全性。

  • 限制登录用户:
AllowUsers username1 username2

通过AllowUsers指定允许通过SSH登录的用户列表。

重启SSH服务:
修改配置文件后,需要重启SSH服务以使更改生效。

sudo systemctl restart sshd

管理 SSH 密钥

SSH密钥是一种比密码更安全的身份验证方式。它包括一对公钥和私钥,公钥存放在服务器上,私钥由用户保管。

  • 生成SSH密钥对:
ssh-keygen -t rsa -b 4096

该命令会生成一个RSA密钥对,密钥长度为4096位。生成过程中,你可以指定存储路径和加密密钥的密码。

  • 复制公钥到服务器:
ssh-copy-id username@server_ip

该命令会将公钥复制到服务器的~/.ssh/authorized_keys文件中,允许你通过私钥登录。

  • 手动添加公钥:
    你也可以手动将公钥内容添加到服务器上的~/.ssh/authorized_keys文件中。

  • 配置无密码登录:
    配置完成后,使用私钥登录时无需输入密码:

ssh username@server_ip

增强 SSH 安全性

为了确保SSH服务的安全性,你可以采取一些额外的措施。

  • 使用防火墙限制访问:
    使用防火墙来限制哪些IP地址可以访问SSH服务。例如,使用ufw来允许特定端口和IP:
sudo ufw allow from 192.168.1.0/24 to any port 2222
  • 启用Fail2Ban:
    Fail2Ban是一个用于防止暴力破解的安全工具。它会在检测到多次失败的登录尝试后自动禁止相关IP地址:

  • 安装Fail2Ban:

sudo apt-get install fail2ban
  • 配置Fail2Ban:
    编辑/etc/fail2ban/jail.local文件,配置SSH的防护策略:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
  • 禁用密码认证:
    通过强制使用SSH密钥登录,可以完全禁用密码认证:
PasswordAuthentication no

远程管理和监控

SSH除了提供远程登录外,还支持端口转发、文件传输等功能。

  • 使用SSH进行端口转发:
  • 本地端口转发:
ssh -L 8080:localhost:80 username@server_ip

该命令将本地8080端口流量转发到远程服务器的80端口。

  • 远程端口转发:
ssh -R 8080:localhost:80 username@server_ip

该命令将远程服务器的8080端口流量转发到本地的80端口。

使用SCP进行文件传输:
SCP(Secure Copy)是基于SSH的文件传输工具:

scp /path/to/local/file username@server_ip:/path/to/remote/directory

监控SSH连接:
使用以下命令可以查看当前活跃的SSH连接:

who

总结

SSH服务是Linux服务器管理的重要工具,通过合理的配置和安全措施,你可以确保远程管理的安全性和效率。本文介绍了从安装、配置到安全性增强的详细步骤,希望能帮助你顺利配置并使用SSH服务。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号