一、引言
在当今数字化时代,远程登录服务器是很多开发者和运维人员经常要做的事情。不过,普通的远程登录方式存在一定安全风险,比如密码可能被暴力破解。今天咱们就来聊聊怎么提升远程登录的安全性,主要是用 Linux 的 ssh 密钥登录,再加上修改端口,让登录变得更安全。
二、应用场景
2.1 企业内部服务器管理
企业里有很多服务器需要运维人员远程管理。要是用传统的用户名和密码登录,一旦密码泄露,服务器就可能被非法入侵,导致数据泄露或者系统被破坏。采用 ssh 密钥登录和修改端口的方式,能大大提高服务器的安全性,保护企业的数据安全。
2.2 个人云服务器使用
现在很多个人开发者会租用云服务器来搭建自己的网站或者开发环境。同样,为了防止他人恶意登录自己的服务器,使用更安全的登录方式是很有必要的。
三、ssh 密钥登录原理
3.1 什么是 ssh 密钥
简单来说,ssh 密钥就像是一把钥匙和锁。它分为公钥和私钥,公钥可以公开,就像锁可以给别人看;私钥要自己保管好,就像钥匙只能自己有。当你要登录服务器时,服务器会用公钥来验证你的私钥是否匹配,匹配上了就允许你登录。
3.2 生成密钥对
在 Linux 系统中,我们可以使用 ssh-keygen 命令来生成密钥对。下面是示例(技术栈:Linux Shell):
# 生成密钥对,采用默认的 RSA 算法
ssh-keygen -t rsa -b 2048
# -t 指定密钥类型,这里是 RSA
# -b 指定密钥长度,2048 位
执行这个命令后,系统会提示你输入保存密钥的位置和密码(密码可以不设置)。默认情况下,公钥会保存在 ~/.ssh/id_rsa.pub,私钥会保存在 ~/.ssh/id_rsa。
3.3 将公钥上传到服务器
生成密钥对后,我们要把公钥上传到服务器。可以使用 ssh-copy-id 命令,示例如下:
# 将公钥上传到服务器,user 是用户名,server_ip 是服务器的 IP 地址
ssh-copy-id user@server_ip
执行这个命令后,会提示你输入服务器的密码,输入正确密码后,公钥就会被上传到服务器的 ~/.ssh/authorized_keys 文件中。
3.4 测试密钥登录
上传公钥后,我们可以测试一下是否能使用密钥登录。示例如下:
# 使用密钥登录服务器
ssh user@server_ip
如果一切正常,你就可以不用输入密码直接登录服务器了。
四、修改 ssh 端口
4.1 为什么要修改端口
默认情况下,ssh 服务使用的是 22 端口。很多攻击者会针对这个默认端口进行扫描和攻击。修改端口可以让攻击者难以找到 ssh 服务的位置,从而提高安全性。
4.2 修改端口的步骤
首先,我们需要编辑 ssh 服务的配置文件 /etc/ssh/sshd_config。示例如下(技术栈:Linux Shell):
# 编辑 ssh 服务配置文件
sudo vim /etc/ssh/sshd_config
在文件中找到 Port 22 这一行,将 22 改成你想要的端口号,比如 2222。修改后保存并退出文件。
然后,重启 ssh 服务,让配置生效:
# 重启 ssh 服务
sudo systemctl restart sshd
4.3 使用新端口登录
修改端口后,我们需要使用新的端口来登录服务器。示例如下:
# 使用新端口 2222 登录服务器
ssh -p 2222 user@server_ip
五、技术优缺点
5.1 优点
5.1.1 安全性高
ssh 密钥登录使用非对称加密技术,很难被破解。而且修改端口后,减少了被扫描攻击的风险。
5.1.2 方便管理
一旦设置好密钥登录,就不用每次登录都输入密码,提高了工作效率。
5.2 缺点
5.2.1 配置复杂
对于新手来说,生成密钥对、上传公钥和修改端口的过程可能有点复杂,需要一定的技术基础。
5.2.2 私钥丢失风险
如果私钥丢失,就无法登录服务器了。而且私钥一旦泄露,别人就可以用它登录服务器。
六、注意事项
6.1 私钥的保管
私钥一定要妥善保管,不要随意泄露。可以将私钥备份到安全的地方,比如加密的 U 盘。
6.2 端口冲突
修改端口时,要确保新端口没有被其他服务占用。可以使用 netstat -tuln 命令查看系统中已经使用的端口。
6.3 防火墙设置
修改端口后,要确保防火墙允许新端口的流量通过。可以使用 iptables 或者 firewalld 来配置防火墙。示例如下(技术栈:Linux Shell):
# 使用 firewalld 开放新端口 2222
sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent
# 重新加载防火墙配置
sudo firewall-cmd --reload
七、文章总结
通过使用 Linux 的 ssh 密钥登录和修改端口,我们可以大大提高远程登录的安全性。ssh 密钥登录利用非对称加密技术,让登录更加安全可靠;修改端口则可以减少被攻击的风险。不过,在使用过程中,我们要注意私钥的保管、端口冲突和防火墙设置等问题。希望大家通过这篇文章,能掌握提升远程登录安全性的方法,保护好自己的服务器。
评论