VPS开启密钥登录 作者: Hogwarts 发布于: 2022-03-05 更新于: 2022-06-30 分类: 默认分类 再水一篇吧,抄的秋水逸冰的文章。 前面有博文说过修改ssh端口和开启密钥登录,在实践过程当中这两个问题是可以同时进行的。它们修改的都是同一文件。在修改ssh默认的22端口的同时顺便就开启了密钥登录。 20220630PS:推荐生成ed25519公钥和私钥,可参考:`https://winamp.top/230.html` #一、生成公钥和私钥 ssh-keygen -t rsa 一路回车吧,需要加密码的话在出现`Enter passphrase`时加入密码。 Xftp登录后,在/root/.ssh/目录下生成了2个文件,id_rsa为私钥,id_rsa.pub为公钥。 将id_rsa拖回本地妥善保存。登录VPS时要用的。 #二、导入公钥 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #三、更改SSH配置文件 ##3.1 输入命令 vim /etc/ssh/sshd_config ##3.2 修改默认22端口 在#Port 22前将#号删除,另起一行, 输入:Port 1024,1024是举例,可自行修改。 不要将Port 22删除。 ##3.3修改密钥项 将下列两项的#号去掉 #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys ##3.3 保存后重启终端 service sshd restart 不要关闭Shell窗口,待重新用新端口和密钥登录后再关闭。 ##3.4 防火墙 ufw或firewall将新端口放行。 ufw还好说,firewalld默认是关闭的,先打开。要是搬瓦工的系统登录的端口不是22端口,还需将22端口先行添加上。 ###3.4.1 ufw操作 apt install ufw -y #安装 ufw enable #开启 ufw allow 1024/tcp #放行端口 ufw reload #使生效 ufw delete allow port/tcp #删除端口 ###3.4.2 firewalld操作 开启命令 #开启前一定是22端口登录。搬瓦工机器注意。 systemctl start firewalld 增加新端口 firewall-cmd --permanent --zone=public --add-port=1024/tcp 重新加载 firewall-cmd --reload 确认端口是否添加成功 firewall-cmd --list-all 加入开机启动 systemctl enable firewalld 可能用到的命令 删除端口 firewall-cmd --permanent --zone=public --remove-port=端口号/tcp 运行 systemctl status firewalld 报错: Warning:allowzonedrifting is enabled.This is considered an insecure configuration option.It will be removed in a future release ... ling it now. vim /etc/firewalld/firewalld.conf /AllowZoneDrifting 将yes更改为no systemctl restart firewalld.service #重启 #四、重新SSH登录 用新端口和密钥登录成功后,可删除默认的22端口和关闭SSH的密码登录。 ##4.1 关闭密码登录 vim /etc/ssh/sshd_config 将后面的PasswordAuthentication yes 修改为:PasswordAuthentication no ##4.2 删除默认22端口 将Port 22删除。 ##4.3 SSH端口重启 service sshd restart ##4.4 多说一点 如果是Debian系统以上操作很完美。 如果是Centos系统,在修改22端口前,一定先行将firewall启动,否则会很麻烦。 尤其是搬瓦工的系统,系统默认是随机的端口,开启firewalld后就失联了。 每次都是进后台加端口,近期灵光一现,在SSH配置文件中加入22端口,开启firewalld后再删除,唉,脱裤子放屁。 标签: ufw, ssh, 密钥, firewalld