SSH是我们登录VPS常用的方式,因此SSH账号的安全至关重要。常见的用户名+密码的登录方式很容易受到暴力破解的影响,为了避免影响,我们可以直接禁止用户名+密码登录VPS的方式,改用密钥登录,既保证了安全,又方便快捷。下面就介绍一下配置ssh key登录的方法。
一、PuttyGen以及Putty软件的下载
这一步看似简单,其实有着至关重要的作用。大家一定要到官方网站进行下载(putty官网可能被墙,请科学上网),一些中文版及不安全链接下载的软件可能会存有后门,带来极大的安全隐患。
我们需要下载的是putty.exe和puttygen.exe两个程序
二、密钥的生成
首先利用用户名+密码登录VPS,在终端中利用以下命令生成RSA密钥
ssh-keygen -t rsa
生成密钥时选择默认位置即可,同时可以选择为密钥增加密码(设置密码后,使用密钥时还需要输入密码)
进入密钥生成的目录,可以看见两个文件id_rsa和id_rsa.pub,将这两个文件下载下来,保存好为后面做准备。
在密钥生成的目录中将其重命名,并且设置权限
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys
vi /etc/ssh/sshd_config
为了安全还可以修改默认的SSH端口,找到#port 22,去掉前面的#,然后修改port后的数字。
保存后重启SSHD服务(CentOS7中为systemctl restart sshd.service)
/etc/init.d/sshd restart
注:CentOS7中的firewall配置
firewall中默认ssh端口为22,在修改端口后需要对其进行设置才能正常登录
复制 firewalld 有关 sshd 的配置文件:
cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
vi /etc/firewalld/services/ssh.xml
修改保存后重载sshd服务
firewall-cmd --reload
打开puttygen.exe软件,将下载的id_rsa文件载入(Load),如果刚才设置了密码,则需要输入密码才能载入,载入成功后如图
同样,在Key passphrase中可以设置密钥的密码,如不想设置,直接点击Save private key即可,根据提示保存为*.ppk文件
四、Putty客户端配置
打开putty客户端,输入VPS的IP地址和SSH连接的端口号
进入SSH选项,点击Browse选择刚才保存的*.ppk文件
然后返回Session选项,点击Load保存配置。
正常进行登录,若刚才设置了密钥密码,则输入密码后可以正常登录
最后,修改sshd_config,将PasswordAuthentication后面的yes改成no,并且重启SSHD(CentOS7中为systemctl restart sshd.service)
vi /etc/ssh/sshd_config
/etc/init.d/sshd restart
到这里设置就完成了
最后,一定要保存好自己的密钥,任何拿到该密钥的人都可以登录你的root账户,建议还是为密钥设置密码以防万一。