本文首次发布于 Byron Han Blog, 作者 @han(Byron Han) ,转载请保留原文链接.
初始服务器配置
新建账号
1
2
useradd develop
passwd develop
添加sudo权限
1
2
3
4
visudo /etc/sudoers
#写入
develop ALL=(ALL)NOPASSWD : ALL
修改远程端口
使用系统默认端口的风险较大,容易被攻击软件扫描以及攻击
设置防火墙
我这边服务器用的是firewall
1
2
3
4
5
6
7
sudo firewall-cmd --add-port=新端口号/tcp --permanent
#firewall-cmd --add-port=<port>/<protocol> #添加端口/协议(TCP/UDP)
#firewall-cmd --remove-port=<port>/<protocol> #移除端口/协议(TCP/UDP)
#firewall-cmd --list-ports #查看开放的端口
# 重启防火墙(修改配置后要重启防火墙)
sudo firewall-cmd --reload
Centos7防火墙firewalld概述及常用操作命令总结
添加远程端口
1
2
3
4
5
#修改配置文件
sudo vim /etc/ssh/sshd_config
# 删除端口注释,改为自己的远程端口
Port XXX
sudo systemctl restart sshd.service
设置密钥登录
SSH 密钥对是通过加密算法生成的一对密钥,为远程登录实例提供一种更安全便捷的认证方式。腾讯云创建的 SSH 密钥对采用 RSA 2048位的加密方式,生成包括公有密钥(公钥)和私有密钥(私钥):
公钥:SSH 密钥对成功生成后,服务器仅存储公钥。对于 Linux 实例,公钥内容存储在 ~/.ssh/authorized_keys 文件中。 私钥:您需要妥善保管私钥,拥有您的私钥的任何人都可以解密您的登录信息,因此您需将私钥保存在一个安全的位置。
优势
使用 SSH 密钥对作为登录凭证,相比用户名和密码的认证方式具备以下优势:
安全性:相比普通的密码登录,SSH 密钥对的安全强度更高,可避免暴力破解。SSH 密钥对采用非对称加密算法生成,使用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。私钥可由用户自己保管,无需通过网络发送。 便捷性:使用 SSH 密钥对可以实现一键远程登录 Linux 实例,无需每次登录都输入密码。另外,在同时维护多台 Linux 实例的场景下,使用 SSH 密钥对登录可以实现更加方便、统一的管理。 腾讯云参考
生成密钥
参考ssh密钥生成
复制密钥对
推送至服务器端
1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241
禁用密码登录
1.执行以下命令,打开 sshd_config 配置文件。
1
2
3
4
5
6
7
8
# 编辑 sshd_config 文件
vi /etc/ssh/sshd_config
# 禁用密码验证
PasswordAuthentication no
# 启用密钥验证
RSAAuthentication yes
PubkeyAuthentication yes
2.执行以下命令,重启 ssh 服务
1
sudo systemctl restart sshd