frp 远程访问安全加固三问:Token 生成、密钥登录与权限解惑

上一篇我们把 frp 跑通了,从公司电脑能 SSH 回家。

但很多朋友对三个安全细节还有疑问:Token 怎么生成才安全?

禁用密码登录会不会影响自己用?

改了配置 sudo 还能用吗?

本文一次说清。

一、安全令牌 auth.token 咋生成?

在 frp 的 frps.tomlfrpc.toml 中,都要求设置 auth.token,她能防止未授权的客户端连接到你的 frp 服务端。

生成一个安全的 token 非常简单,下面三种方式都中。

方法 A:使用 OpenSSL 生成(推荐)

openssl rand -base64 32

方法 B:使用 Python 一行命令

python3 -c "import secrets; print(secrets.token_urlsafe(32))"

方法 C:使用 pwgen 工具(需提前安装)

pwgen -s 32 1

重要:服务端(frps.toml)和客户端(frpc.toml)中的 auth.token 必须完全一致,否则连接会被拒绝。

在这里插入图片描述

二、SSH 禁用密码登录,改为密钥登录(不影响你连别人)

很多朋友担心:在 Mac 上改了 SSH 配置,会不会导致自己无法从 Mac 连接到公司的服务器?

答案是:完全不会,放心整,这个修改只影响别人访问你的 Mac

为什么不影响你连别人?

  • /etc/ssh/sshd_config 控制的是 SSH 服务端,也就是当别人通过 SSH 访问你的 Mac 时,要不要密码、允不允许 root
  • 你从 Mac 向外连接 使用的是 SSH 客户端,配置在 ~/.ssh/config/etc/ssh/ssh_config 里,和 sshd_config 毫无关系。

放心操作,你依然可以正常 ssh 公司服务器

配置步骤

第一步:确保你能用密钥登录自己 Mac

在 Mac 上生成密钥对:

ssh-keygen -t rsa -b 4096

将公钥加入信任列表:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

测试从外网(通过 frp)用密钥登录:

ssh -i ~/.ssh/id_rsa -p 2222 你的Mac用户名@腾讯云IP

如果无需密码就进入,说明密钥登录配置成功。

第二步:禁用密码登录

编辑 SSH 服务端配置文件:

sudo vim /etc/ssh/sshd_config

找到以下行,去掉前面的 #,并修改值:

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

保存退出,重启 SSH 服务:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist

现在任何试图用密码登录你 Mac 的行为都会被拒绝,只有持有你私钥的设备才能连接。

三、禁用 root 登录后,sudo 还能用吗?

为了进一步加固,我们还在 sshd_config 中设置了:

PermitRootLogin no

这会让别人无法直接用 root 身份 SSH 到你 Mac。

但很多朋友担心:这样一来,我从公司连回 Mac 后,是不是 sudo 就失效了?

答案是:完全不影响,放心整

  • PermitRootLogin no 仅仅阻止了 root 用户直接远程登录
  • 你用自己普通账户登录后,再执行 sudo 提权,这个行为受 /etc/sudoers 控制,和 SSH 配置无关。

你在公司的终端里:

ssh -p 2222 duozhang@腾讯云IP   # 用你自己的账户登录
sudo docker restart hadoop      # 仍可正常提权,输入 Mac 账户密码即可

完全OK!

四、整体安全效果总结

  • 云服务器安全组只开放了必要的端口,并限制了来源 IP。
  • frp 通信受强 token 保护,防陌生人蹭隧道。
  • Mac SSH 仅允许密钥登录,禁止密码,杜绝暴力破解。
  • 禁止 root 直接登录,普通用户仍可使用 sudo 管理。

三招下来,你的远程开发环境既方便又抗揍,可以安心连自己的 Mac了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值