已编辑 6 几个月前 通过 ExtremeHow 编辑团队
DebianSSH网络安全远程访问Linux服务器开源系统管理命令行界面
翻译更新 6 几个月前
安全外壳(SSH)是一种流行的网络协议,允许在不安全的网络上建立安全连接。SSH为访问远程计算机提供了一种安全的方法,对于系统管理员来说是必不可少的。在Debian上设置SSH服务器是一个简单的过程,本指南将引导您完成有效配置SSH服务器的步骤。我们将涵盖安装、配置、安全实践和故障排除,并提供示例和解释。本指南假设您对终端和Debian系统上的超级用户(root)权限有基本了解。
SSH代表安全外壳,用于以安全的方式连接到远程计算机。它取代了如Telnet和FTP等不安全的协议,这些协议在未加密的格式下传输数据包括密码。SSH加密会话,使任何干扰实体都无法读取。这种加密保证了客户端和服务器之间数据传输的安全性和保密性。SSH默认在端口22上运行,并提供身份验证和命令行接口进行安全通信。
在设置SSH服务器之前,确保您的Debian系统是最新的,以避免安装过程中出现任何冲突或问题。使用超级用户权限登录到您的Debian服务器,并按照以下步骤操作:
sudo apt update
sudo apt upgrade
上述命令将获取关于可用软件包的最新信息,然后将软件包升级到最新版本。这确保了SSH服务器安装的所有前提条件都已满足。
在Debian上,OpenSSH软件包提供了SSH服务器和客户端。要安装OpenSSH服务器软件包,请执行以下命令:
sudo apt install -y openssh-server
-y
选项自动回答所有提示为'yes',允许非交互式安装。OpenSSH服务器安装将自动开始,并在完成后启用。
安装后,确认SSH服务如预期运行非常重要。使用以下命令检查SSH服务的状态:
sudo systemctl status ssh
输出应显示服务处于活动和运行状态。如果不是,可以按如下方式启动SSH服务:
sudo systemctl start ssh
此外,要确保SSH服务在重启后启动,请启用它:
sudo systemctl enable 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
一些推荐的配置如下:
Port 22
行并将其更改为高于1024的数字,以避免与知名端口冲突。PermitRootLogin
指令设置为no
。PasswordAuthentication
设置为no
。进行更改后,保存文件并退出编辑器。为应用更改,重启SSH服务:
sudo systemctl restart ssh
SSH密钥提供了一种比使用密码更安全的登录SSH服务器的方法。SSH密钥本质上是两个文件:一个公钥和一个私钥。私钥保存在您的计算机上并必须保持安全,而公钥保存在服务器上。以下是设置基于SSH密钥的验证的方法:
在客户端机器(您的本地机器)上,使用以下命令生成SSH密钥:
ssh-keygen -t rsa -b 4096
此命令生成一个4096位的RSA密钥对。系统会要求您输入一个文件名来保存密钥。按enter
将它们存储在默认位置(私钥为~/.ssh/id_rsa
,公钥为~/.ssh/id_rsa.pub
)。
使用ssh-copy-id
命令将公钥上传到Debian服务器。用您的用户名和服务器的IP地址分别替换user
和server_ip
:
ssh-copy-id user@server_ip
它会要求您输入服务器密码。输入后,它将公钥复制到服务器的~/.ssh/authorized_keys
并设置适当的权限。
测试SSH连接以确认密钥验证是否有效。执行:
ssh user@server_ip
如果成功,您将在没有密码提示的情况下登录,这表示正确的密钥验证。如果您确信密钥验证有效,现在可以通过在/etc/ssh/sshd_config
中设置PasswordAuthentication no
来禁用密码验证。
提高SSH服务器安全性涉及配置减少潜在风险的设置。以下是进一步保护SSH服务器的多个步骤:
使用AllowUsers
或AllowGroups
指令在sshd_config
中确定哪些用户可以通过SSH登录。例如,要仅允许user1
和user2
通过SSH登录,添加:
AllowUsers user1 user2
SSH协议1是过时的,并且存在漏洞。务必使用协议2:
Protocol 2
设置防火墙规则以仅允许来自受信任的IP地址的SSH访问。使用ufw
,添加如下规则:
sudo ufw allow from trusted_ip to any port ssh
Fail2Ban是一种入侵防御软件,有助于保护您的服务器免受暴力攻击。像这样安装它:
sudo apt install fail2ban
默认情况下,它会自动配置自己以保护SSH。确保它正在运行并已启用:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
遇到SSH问题并不罕见。以下是一些常见问题及其可能的解决方案。
如果您收到“连接被拒绝”错误,SSH服务可能未运行,或者防火墙可能阻止了连接。验证SSH是否已启用:
sudo systemctl status ssh
确保防火墙已配置为允许连接SSH端口22或您配置的端口。
如果无法验证身份,请仔细检查您的权限。确保authorized_keys
存在、可读且由用户拥有。
chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys
SSH服务器在/var/log/auth.log
中记录了更详细的信息。检查此文件通常有助于诊断问题。
在Debian上设置SSH服务器是一项必不可少的任务,以确保对系统的安全远程管理。本指南涵盖SSH设置的重要方面,重点是安装、配置以及保护您的SSH服务器免受未经授权的访问。始终保持服务器更新,限制用户权限,并实施安全措施,例如防火墙和入侵防御系统,以加强服务器的安全性。正确的SSH安全实践对于维护安全、高效和可靠的服务器环境至关重要。
如果你发现文章内容有误, 您可以