Debian SSH 端口修改、防火墙配置以及使用密匙登录

Debian SSH 端口修改与 CentOS 方法有点不一样,不过原理是一样的。

Debian SSH 端口修改

添加新 SSH 端口

vi /etc/ssh/sshd_config

默认端口为 22,去掉 #Port 22 前面的 # 号,并在其下添加一行 Port 8899,如下:

Port 22
Port 8899
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

防火墙配置

检查是否安装 iptables

whereis iptables

如有如下输出表示已安装

iptables: /sbin/iptables /etc/iptables.rules /usr/share/iptables /usr/share/man/man8/iptables.8.gz

查看 iptables 状态

iptables -L -n

允许新 SSH 端口通过

iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 8899 -j DROP
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8899 -j ACCEPT

保存 iptables 配置

iptables-save > /etc/iptables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables

重启 SSH 服务:/etc/init.d/ssh restart 或者 /etc/init.d/sshd restart

测试使用新的 SSH 端口是否能连接正常使用,确保正常工作进行下一步。

禁用 22 端口

SSH 配置文件删除 22 端口

vi /etc/ssh/sshd_config

Port 22 前面加 # 注释掉,如:

#Port 22
Port 8899
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

防火墙禁止 22 端口

iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j DROP

保存 iptables 配置

iptables-save > /etc/iptables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables

重启 SSH 服务:/etc/init.d/ssh restart 或者 /etc/init.d/sshd restart

至此,SSH 端口修改完成。

SSH 配置使用密匙登录

生成密匙

用 root 登录后运行命令:

ssh-keygen -t rsa -b 4096
  • 会输入保存密匙文件路径,默认 /root/.ssh/id_rsa
  • 接着会提示输入加密密匙文件密码,可以留空,不过建议还是加个密码。再回车,密匙文件就生成完。文件保存在 /root/.ssh/ 目录下,id_rsa 为私钥,id_rsa.pub 为公钥。私钥自己下载到本地电脑妥善保存,公钥可以任意公开。
  • 可以使用 FlashFXP 通过 SFTP 方式或者 WinSCP 登录 VPS 下载私钥文件到本地,保存好记得把服务端私钥文件删除。

导入公钥

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

修改 SSH 配置文件

vi /etc/ssh/sshd_config,找到下面两行:

#RSAAuthentication yes
#PubkeyAuthentication yes

把前面的 # 去掉。也可能只有一行,把前面的 # 去掉就好。

#PubkeyAuthentication yes

重启 SSH 服务:/etc/init.d/ssh restart 或者 /etc/init.d/sshd restart

测试使用密匙能否登录 SSH,如果可以,修改 SSH 文件,禁止密码登录。

vi /etc/ssh/sshd_config,找到下面几行内容:

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

将 #PasswordAuthentication yes 改为 PasswordAuthentication no 然后保存退出。

重启 SSH 服务:/etc/init.d/ssh restart 或者 /etc/init.d/sshd restart

至此,修改 SSH 端口,禁用 22 端口;使用密匙登录 SSH,禁用密码登录修改完成。

参考文章

逗比 - Debian/Ubuntu SSH端口一键修改脚本 修改默认端口 避免暴力破解

声明:除非注明,常阳时光文章均为原创
本文地址:https://cyhour.com/843/
转载时必须以链接形式注明原始出处。
Views: 729 Tags:  , 

Comments:0

发表留言

炒蛋:Vultr 送$25 | 搬瓦工年付$19补货,优惠码 BWH26FXH3HIQ | 推荐VPS信息