Linux SSH 连接安全设置
一.更换端口, 可以在一定程度上防止扫描攻击
vim /etc/ssh/sshd_config
将 port 一项从 22 更改为高位端口, 然后重启 ssh 服务
systemctl restart sshd.service
二.禁止使用root账号登录, 允许使用root账号登录服务器是一个极其危险的行为!
vim /etc/ssh/sshd_config
MaxAuthTries 3
#
限制失败次数
PermitRootLogin no
#
禁止使用
root
账号登录
重启 ssh 服务
三.关闭密码登录, 防止暴力攻击, 使用 非对称密钥对进行身份认证
vim /etc/ssh/sshd_config
RSAAuthentication yes # 开启RSA验证
PubkeyAuthentication yes # 是否使用公钥验证
AuthorizedKeysFile .ssh/authorized_keys # 保存公钥的文件的位置, 这里就是登录用户的家目录下的 .ssh目录, 可以根据自己的实际情况进行配置
PasswordAuthentication no #禁止使用密码验证登陆
四.生成公钥私钥, 将公钥上传到服务器
1、确认服务器都已都已安装了ssh服务
2、在本机上创建密钥对
ssh-keygen
-
t rsa
1).注意查看提示
,
如果出现提示系统已经生成了
ssh-
key,
则不必生成
2).如果需要重新生成ssh-key,所有的提示按enter键即可,也可以根据自己的需要输入自己的选项
3).注意提示保存
ssh-key
的存放目
录
4).完成以后进入到保存ssh-key的目录, 就可以看到id_rsa和id_rsa.pub文件
3、把公钥的内容追加拷贝到服务器上登录用户的家目录下的.ssh目录下的authorized_keys 文件(具体将公钥追加拷贝到那个文件, 根据ssh的配置文件的实际配置而定)
4、systemctl
restart sshd.service
#
重启
ssh
服务
再次使用ssh远程连接服务器, 发现已不需要输入密码进行验证
注意: 如果使用ssh进行远程登录时 使用了sudo 超级管理员权限, 那么私钥就是当前服务器的root用户的私钥, 所以,也就是说需要把当前服务器root用户的公钥上传到目标服务器,才可以使用 sudo 超级管理员权限, 否则仍然需要输入密码(如果开启了允许输入密码进行身份验证)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗