随着互联网的发展,越来越多的企业和个人选择将业务部署到云端。阿里云作为国内领先的云计算服务平台,为用户提供了丰富的云产品和服务。其中,Linux服务器凭借其开源、稳定、高效等特性受到了广大用户的青睐。为了方便管理员对服务器进行远程管理和维护,SSH(Secure Shell)协议成为了不可或缺的工具。本文将详细介绍如何在阿里云Linux服务器上安全地设置SSH远程登录。
一、修改默认端口
由于黑客经常使用暴力破解的方式尝试登录服务器,而22号端口是默认的SSH服务端口,因此很容易成为攻击目标。为了避免这种情况的发生,我们建议您修改SSH服务的默认端口号。具体操作步骤如下:
1. 使用root权限编辑/etc/ssh/sshd_config文件,在Port 22这行前添加一行,指定新的端口号,如:Port 36000;
2. 修改完成后保存并退出编辑器;
3. 执行命令systemctl restart sshd重启SSH服务使配置生效;
4. 登录阿里云控制台,进入安全组设置页面,添加一条入方向规则,允许新端口的TCP连接请求。
二、禁用root用户直接登录
考虑到root账户拥有最高权限,一旦被攻破将会给服务器带来灾难性的后果。所以出于安全性考虑,我们应该禁止root用户通过SSH直接登录。同样是在sshd_config文件中找到“PermitRootLogin yes”这一行,并将其改为“PermitRootLogin no”。这样做的好处是可以避免因密码泄露而导致整个系统被入侵的风险。
三、启用公钥认证方式
相对于传统的用户名+密码组合而言,基于非对称加密算法生成的密钥对更加安全可靠。它由一对相互匹配但又互不相同的私钥和公钥组成。私钥由客户端保存且必须严格保密;公钥则可以公开发布至服务器端。当发起连接请求时,服务器会利用存储着的公钥验证客户端发送过来的身份信息是否正确无误。若匹配成功,则允许建立连接。
要在阿里云Linux服务器上启用公钥认证,请按照以下步骤操作:
1. 在本地计算机生成密钥对。以Windows系统为例,可以通过PuttyGen工具完成这项工作;如果是MacOS或Linux系统,则可以直接运行ssh-keygen命令来创建;
2. 将生成好的公钥内容复制粘贴到/home/username/.ssh/authorized_keys文件中(请根据实际情况替换username为对应普通用户的名称)。如果该目录不存在,请先手动创建;
3. 确保只有所有者具有读写权限,执行命令chmod 600 authorized_keys;
4. 再次打开sshd_config文件,确保存在以下几行配置:“PubkeyAuthentication yes”、“AuthorizedKeysFile .ssh/authorized_keys”;
5. 重启SSH服务。
四、限制可登录IP地址范围
除了上述措施外,我们还可以进一步缩小能够访问SSH服务的IP地址范围。这有助于减少不必要的外部访问,降低遭受网络攻击的概率。具体做法是在安全组策略里设置白名单机制,仅允许特定网段内的设备发起连接请求。如果您确实需要对外开放SSH端口的话,那么至少也应该尽量减少暴露时间,及时调整规则。
五、定期更新软件版本
无论是操作系统本身还是各种应用程序都可能存在漏洞。这些漏洞一旦被恶意利用就可能造成严重的损失。因此保持软件处于最新状态是非常重要的。对于CentOS/RHEL系列发行版来说,可以通过yum update命令来进行全面升级;而对于Ubuntu/Debian等基于APT包管理系统的平台,则应该使用apt-get update && apt-get upgrade命令。
在阿里云Linux服务器上安全地设置SSH远程登录需要综合采取多种手段。从更改默认端口到禁用root用户直连再到启用公钥认证方式以及限制可登录IP地址范围,每一个环节都不容忽视。只有这样才能最大程度地保障服务器的安全性,让您的业务稳定运行。