VPS修改SSH端口及设置私钥登录的过程

当我们购买了一台VPS,并满心欢喜地搭建好了凝聚着自己时间与经历的网站以后,却由于默认端口弱密码的原因被搞破坏的人们给入侵了端口,成为他们的肉鸡,这是多么令人沮丧的一件事情。因此,买到一台VPS后的首要工作就是更改默认的SSH登陆端口,为了安全还可以同时设置私钥登录。

1、修改登录端口

首先,我们先用工具连接上我们的VPS(SSH工具我觉得FinalshellXshell都很不错,Finalshell还带有一个很直观的VPS状态监视)

输入以下命令可以查看成功登录的IP地址

grep "Accepted password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

将代码中的”Accepted”更改为“Failed”就可以查看登录失败的IP列表了,即:

grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more
未改端口前暴力破解的IP

开始修改SSH端口。

进入 /etc/ssh 文件夹,找到 sshd_config 这一文件

cd /etc/ssh
ls
vi sshd_config

i 进入编辑状态

找到 Port 22 这一行,去掉前面的 “#” 注释并将后面的 22 端口修改为你所希望的登录端口,例如19995,推荐换个五位的,但是不要超过 65535 ,这是最大端口数。

修改完成后按 esc 键 并输入 :wq! 结束编辑

修改完成后输入以下命令来重启SSH服务

#CentOS系统
service sshd restart

#Debian/Ubuntu系统
service ssh restart

当然你也可以通过在SSH键入以下命令来直接修改端口

sed -i "s/Port .*/Port 你希望改成的端口号/g" /etc/ssh/sshd_config

修改成功后也要输入上面的命令重启SSH服务。

2、设置私钥

正所谓“有备无患”,数据无价,能够给予数据更多的保护自然是极好的。

密钥形式登录的原理是:利用密钥生成器在VPS上来制作一对密钥——即一只公钥和一只私钥。将公钥添加到服务器的某个账户上,在客户端利用私钥即可完成认证并登录。如果没有私钥,那么任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。

设置SSH通过私钥登录VPS

首先在VPS上输入以下命令来制作密钥对,制作过程中会提示你输入密钥的密码

ssh-keygen

完整过程如下

root@heVvYpZNm:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <=== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <=== 在这里会提示你输入密钥的锁码
Enter same passphrase again:  <=== 再次输入
Your identification has been saved in /root/.ssh/id_rsa.  <=== 这里是你输出的密钥所在的目录
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:  <=== 这里输出的是你的私钥
The key's randomart image is:  <=== 这里输出的是你的公钥
root@heVvYpZNm:~#

随后输入以下命令安装密钥

cd .ssh
cat id_rsa.pub >> authorized_keys

输入以下命令为相关文件赋予读写权限以确保连接成功

chmod 600 authorized_keys
chmod 700 ~/.ssh

编辑 /etc/ssh/sshd_config 文件,并进行下面的设置,没有的选项可以直接加入,前面有“#”注释的要去掉注释,修改完成保存后退出。

RSAAuthentication yes
PubkeyAuthentication yes

完成以上设置后需要重启SSH服务并以修改后的端口及密钥重新连接VPS来测试是否修改成功,如成功则可以选择修改/etc/ssh/sshd_config中的以下选项来禁用密码登录

PasswordAuthentication no

某些SSH软件连接时可能会提示“暂不支持此私钥格式,需转换成PEM格式私钥”,那么只需按提示输入以下命令转换一下密钥格式即可

ssh-keygen -p -m PEM -f 私钥路径

下载私钥需参照你所使用的SSH连接工具为准,譬如Xshell配套的Xftp,或者Finalshell的右键下载。

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注