收起左侧

SHH 密钥登录

0
回复
200
查看
[ 复制链接 ]

4

主题

2

回帖

0

牛值

江湖小虾

飞牛系统用了不到半年,从0.97至今还没有碰到问题,这次重新梳理了一下安全,看了很多帖子都提到用反代。确实用反代可以过滤掉99%以上的安全问题。
lucky 工具也比较好用,我记得腾讯云曾经推出过几元一年的“数字.xyz”的域名,不知道还有没有,建议大家囤一个吧。现在应该基本都有 ipv6 的公网地址了,没有的话打电话基本都能改桥接用路由拨号和开启 ipv6 的,这样只暴露一个反代端口到外网+ssl加密,基本都可以挡住99%以上的攻击了。说句实话,除非是非常明显的漏洞,黑客真的没有必要花大力气去破解一个私人的NAS的。

安全原因多方面,重点还是在个人意识。您要相信绝大多数黑客都是小白,真正的高精尖黑客没眼花心思看我们的。

所以我重点说说用密钥登录ssh,把这个加固一下吧,实际上老是在飞牛界面开关ssh也很麻烦的。

密钥登录

1、生成密钥

以下直接用飞牛系统生成为例

ssh登录飞牛系统
ssh-keygen -t ed25519 -C "my-key-$(date +%Y%m%d)"

2、打印密钥查看

# 查看公钥
cat .ssh/id_ed25519.pub

# 查看私钥
cat .ssh/id_ed25519

3、设置登录公钥

# 创建公钥
cp .ssh/id_ed25519.pub .ssh/authorized_keys

# 设置权限
sudu chmod 600 .ssh/authorized_keys

4、迁移并下载私钥

这个密钥一定不要泄露啊,这就等于大门钥匙。

# 迁移
sudu mv .ssh/id_ed25519 /目标路径

# 迁移完成后下载到本地,服务器自己决定是否保留。

拷贝公钥到其他服务器

1、 适用于一个私钥管理多台服务器(家用没区别)

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@hostname

2、 如果客户端不支持ssh-copy-id可用脚本创建

#!/bin/bash
# 添加公钥并设置正确权限
USERNAME="你的用户名"
PUBKEY="ssh-ed25519 AAAAC3... your-key"

# 创建.ssh目录(如果不存在)
mkdir -p /home/$USERNAME/.ssh

# 添加公钥
echo "$PUBKEY" >> /home/$USERNAME/.ssh/authorized_keys

# 设置正确权限
chmod 700 /home/$USERNAME/.ssh
chmod 600 /home/$USERNAME/.ssh/authorized_keys
chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh

# 验证
ls -la /home/$USERNAME/.ssh/

5、用 ssh 客户端改为密钥登录是否成功(客户端会提示您上传私钥),成功后设置sshd_config

设置 ssh 用密钥登录

openwrt

# 禁用密码登录
登录 openwrt
系统 → 管理权 → SSH 访问 → 关闭"密码验证"和"允许 root 用户凭密码登录"

fnos

# 1、备份原配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

# 2、编辑配置
sudo nano /etc/ssh/sshd_config

# 3、修改以下行:
Port 2222  # 改端口。可以不做,反正外网都需要转发
PubkeyAuthentication yes            # 开启密钥认证
AuthorizedKeysFile .ssh/authorized_keys         # 公钥路径
PasswordAuthentication no           # 禁用密码登录
ChallengeResponseAuthentication no  # 禁用挑战-响应
PermitRootLogin no                  # 如果不用root的话写"no",或要求用密钥登录"without-password"
AuthenticationMethods publickey     # 认证方式,有publickey(密钥)、password(密码)等多种认证方式,且可以组合。

# 4、重启SSH
sudo systemctl restart sshd

# 有问题恢复
sudo cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
sudo systemctl restart sshd

查看实际生效的配置

sshd -T | grep -i authentication

我的配置

# PermitRootLogin 设置如下:
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin without-password
AuthenticationMethods publickey

# 重启SSH
sudo systemctl restart sshd

改为密钥认证后,有很多用法,如多服务器之间定时用 rsync 同步等等,安全又方便。

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则