本来我懒得干这事的,端口不是22,密码还是随机的。但架不住老是被扫描,服务器太烂伤不起,干脆上证书登陆吧。
还用root+123456当密码?隔壁脚本小子都笑出了猪叫。今天这篇Ubuntu SSH端口修改+密钥登录教程,手把手教你把大门换成暗号12345,再把钥匙做成“必须指纹+密码”才能开的瑞士银行级保险柜。全程macOS实测,踩坑记录全写,照着抄就能活。
一、为啥要折腾?给你三个无法反驳的理由
- 暴力扫描90%发生在22端口,改端口=直接把99%的脚本拒之门外。
- 密钥+passphrase双因子,比单纯密码高到不知道哪里去了。
- 关闭密码登录后,就算天王老子拿到账号也敲不开大门。
二、服务器端:先把22端口踹了,换上12345
先ssh root@你的IP登进去,别急着关终端,留一条后路。
# 备份原配置,手残党福音
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑配置
sudo nano /etc/ssh/sshd_config
找到#Port 22
,改成:
Port 12345
顺手把下面三行改成这样(先别关PasswordAuthentication,等会儿钥匙测试通过再阉割):
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin prohibit-password
保存退出,重启ssh:
sudo systemctl restart ssh
防火墙放行12345:
sudo ufw allow 12345/tcp
此时别关终端!新开一个窗口测试12345能不能连,万一翻车还能用老窗口救场。
三、macOS本地:生成“带密码的钥匙”
Finder里那个“文稿”就是终端的Documents,别再写/文档/网站/证书,系统会把你当成外星人。
# 1. 建文件夹,-p防止重复报错
mkdir -p "$HOME/Documents/网站/证书"
# 2. 生成4096位RSA,passphrase统一1122334455
ssh-keygen -t rsa -b 4096 -f "$HOME/Documents/网站/证书/ubuntu_server_key"
提示Enter passphrase时连打两次1122334455,别嫌长,暴力破解哭给你看。
四、把公钥扔上服务器:ssh-copy-id一把梭
ssh-copy-id -i "$HOME/Documents/网站/证书/ubuntu_server_key.pub" -p 12345 username@你的服务器IP
第一次会让你输服务器账号密码,输完看到Number of key(s) added: 1就稳了。
五、验证:钥匙能开门再锁死密码
ssh -i "$HOME/Documents/网站/证书/ubuntu_server_key" -p 12345 username@你的服务器IP
弹出Enter passphrase for key时敲1122334455,能进去继续,进不去回头检查路径别哭。
六、终极锁门:关闭一切密码登录
确认新终端也能密钥登录后,回到老窗口,彻底阉割密码:
sudo nano /etc/ssh/sshd_config
把下面三行改成:
PasswordAuthentication no
PermitRootLogin prohibit-password
ChallengeResponseAuthentication no
检查语法别手滑:
sudo sshd -t
没报错再重启:
sudo systemctl restart ssh
此时密码登录已死,只有手握私钥+知道1122334455的人才能进门。
七、懒人福利:写进~/.ssh/config,以后一句ssh mysv
cat >> ~/.ssh/config <<'EOF'
Host mysv
HostName 你的服务器IP
Port 12345
User username
IdentityFile ~/Documents/网站/证书/ubuntu_server_key
EOF
以后直接:
ssh mysv
输入1122334455,完事。
八、常见翻车现场&吐槽
- “Saving key failed: No such file”——路径写成/文档/网站/证书,系统以为你要在根目录建文件夹,当然不存在。
- ssh: connect to host port 22: Connection refused——端口改了还用22,系统把你当陌生人。
- Permission denied (publickey)——.ssh或authorized_keys权限不对,服务器端执行:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
九、备份与良心提醒
把ubuntu_server_key存进加密U盘/密码管理器,丢了就算root也救不了。改配置前永远留一条已登录的终端,别把自己锁门外。
教程结束,去喝杯奶茶庆祝暴力破解失业吧。
© 万事屋原创 | 转载请保留出处:https://www.rei3.com
没有回复内容