视窗苹果电脑软件设置安全生产力Linux安卓性能配置苹果自定义设备管理iPhone设置 全部

如何在Debian上设置SSH服务器

已编辑 6 几个月前 通过 ExtremeHow 编辑团队

DebianSSH网络安全远程访问Linux服务器开源系统管理命令行界面

如何在Debian上设置SSH服务器

翻译更新 6 几个月前

安全外壳(SSH)是一种流行的网络协议,允许在不安全的网络上建立安全连接。SSH为访问远程计算机提供了一种安全的方法,对于系统管理员来说是必不可少的。在Debian上设置SSH服务器是一个简单的过程,本指南将引导您完成有效配置SSH服务器的步骤。我们将涵盖安装、配置、安全实践和故障排除,并提供示例和解释。本指南假设您对终端和Debian系统上的超级用户(root)权限有基本了解。

1. 了解SSH及其重要性

SSH代表安全外壳,用于以安全的方式连接到远程计算机。它取代了如Telnet和FTP等不安全的协议,这些协议在未加密的格式下传输数据包括密码。SSH加密会话,使任何干扰实体都无法读取。这种加密保证了客户端和服务器之间数据传输的安全性和保密性。SSH默认在端口22上运行,并提供身份验证和命令行接口进行安全通信。

2. 准备Debian系统

在设置SSH服务器之前,确保您的Debian系统是最新的,以避免安装过程中出现任何冲突或问题。使用超级用户权限登录到您的Debian服务器,并按照以下步骤操作:

sudo apt update
sudo apt upgrade

上述命令将获取关于可用软件包的最新信息,然后将软件包升级到最新版本。这确保了SSH服务器安装的所有前提条件都已满足。

3. 安装OpenSSH服务器

在Debian上,OpenSSH软件包提供了SSH服务器和客户端。要安装OpenSSH服务器软件包,请执行以下命令:

sudo apt install -y openssh-server

-y选项自动回答所有提示为'yes',允许非交互式安装。OpenSSH服务器安装将自动开始,并在完成后启用。

4. 验证SSH服务

安装后,确认SSH服务如预期运行非常重要。使用以下命令检查SSH服务的状态:

sudo systemctl status ssh

输出应显示服务处于活动和运行状态。如果不是,可以按如下方式启动SSH服务:

sudo systemctl start ssh

此外,要确保SSH服务在重启后启动,请启用它:

sudo systemctl enable ssh

5. 基本SSH配置

SSH服务器的配置文件位于/etc/ssh/sshd_config中。建议在进行更改之前创建原始文件的备份:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

使用您喜欢的文本编辑器(如nano或vim)编辑配置文件:

sudo nano /etc/ssh/sshd_config

一些推荐的配置如下:

进行更改后,保存文件并退出编辑器。为应用更改,重启SSH服务:

sudo systemctl restart ssh

6. 设置基于SSH密钥的验证

SSH密钥提供了一种比使用密码更安全的登录SSH服务器的方法。SSH密钥本质上是两个文件:一个公钥和一个私钥。私钥保存在您的计算机上并必须保持安全,而公钥保存在服务器上。以下是设置基于SSH密钥的验证的方法:

6.1. 生成SSH密钥对

在客户端机器(您的本地机器)上,使用以下命令生成SSH密钥:

ssh-keygen -t rsa -b 4096

此命令生成一个4096位的RSA密钥对。系统会要求您输入一个文件名来保存密钥。按enter将它们存储在默认位置(私钥为~/.ssh/id_rsa,公钥为~/.ssh/id_rsa.pub)。

6.2. 将公钥复制到服务器

使用ssh-copy-id命令将公钥上传到Debian服务器。用您的用户名和服务器的IP地址分别替换userserver_ip

ssh-copy-id user@server_ip

它会要求您输入服务器密码。输入后,它将公钥复制到服务器的~/.ssh/authorized_keys并设置适当的权限。

6.3. 验证基于SSH密钥的验证

测试SSH连接以确认密钥验证是否有效。执行:

ssh user@server_ip

如果成功,您将在没有密码提示的情况下登录,这表示正确的密钥验证。如果您确信密钥验证有效,现在可以通过在/etc/ssh/sshd_config中设置PasswordAuthentication no来禁用密码验证。

7. 增强SSH安全性

提高SSH服务器安全性涉及配置减少潜在风险的设置。以下是进一步保护SSH服务器的多个步骤:

7.1. 限制用户访问

使用AllowUsersAllowGroups指令在sshd_config中确定哪些用户可以通过SSH登录。例如,要仅允许user1user2通过SSH登录,添加:

AllowUsers user1 user2

7.2. 禁用SSH协议1

SSH协议1是过时的,并且存在漏洞。务必使用协议2:

Protocol 2

7.3. 使用防火墙控制SSH访问

设置防火墙规则以仅允许来自受信任的IP地址的SSH访问。使用ufw,添加如下规则:

sudo ufw allow from trusted_ip to any port ssh

7.4. 配置Fail2Ban

Fail2Ban是一种入侵防御软件,有助于保护您的服务器免受暴力攻击。像这样安装它:

sudo apt install fail2ban

默认情况下,它会自动配置自己以保护SSH。确保它正在运行并已启用:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

8. 排除常见SSH问题

遇到SSH问题并不罕见。以下是一些常见问题及其可能的解决方案。

8.1. SSH连接被拒绝

如果您收到“连接被拒绝”错误,SSH服务可能未运行,或者防火墙可能阻止了连接。验证SSH是否已启用:

sudo systemctl status ssh

确保防火墙已配置为允许连接SSH端口22或您配置的端口。

8.2. 身份验证失败

如果无法验证身份,请仔细检查您的权限。确保authorized_keys存在、可读且由用户拥有。

chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys

SSH服务器在/var/log/auth.log中记录了更详细的信息。检查此文件通常有助于诊断问题。

总结

在Debian上设置SSH服务器是一项必不可少的任务,以确保对系统的安全远程管理。本指南涵盖SSH设置的重要方面,重点是安装、配置以及保护您的SSH服务器免受未经授权的访问。始终保持服务器更新,限制用户权限,并实施安全措施,例如防火墙和入侵防御系统,以加强服务器的安全性。正确的SSH安全实践对于维护安全、高效和可靠的服务器环境至关重要。

如果你发现文章内容有误, 您可以


评论