如何在Windows 10上通过PuTTY使用基于SSH密钥的登录
与服务器建立SSH连接的身份验证有两种,一种是基于密码的身份验证,另一种是基于SSH密钥的身份验证。
与传统的基于密码的身份验证相比,基于SSH密钥的身份验证最安全。
基于SSH密钥的身份验证不易受到攻击。
建议使用此步骤来确保root登录到服务器的安全。
对于系统管理员来说,这是必要的步骤,可保护服务器免受外部攻击。
本教程说明了如何使用Windows OS上的PuTTY软件使用基于SSH密钥的身份验证连接服务器。
步骤1(将普通用户添加到相应的Linux发行版)
在Ubuntu/Debian上
root@theitroad:~# adduser theitroad
在CentOS/RHEL上
添加普通用户
root@theitroad:~# adduser theitroad
为普通用户添加密码
root@theitroad:~# passwd theitroad
向普通用户授予sudo权限
在Ubuntu/Debian上
root@theitroad:~# gpasswd -a theitroad sudo
在CentOS/RHEL上
root@theitroad:~# gpasswd -a theitroad wheel
步骤2(生成公共和私有SSH密钥)
root@theitroad:~# ssh-keygen -t rsa
打开公共SSH密钥并将其复制以供将来使用
root@theitroad:~# cat /root/.ssh/id_rsa.pub
输出示例
将上述公共密钥保存到记事本中以备将来使用
步骤3(将SSH公钥添加到普通用户)
将root用户切换为普通用户
root@theitroad:~# su - theitroad
创建SSH目录
theitroad@theitroad:~$mkdir .ssh
提供对目录的安全700权限
theitroad@theitroad:~$chmod 700 .ssh
将生成的公钥添加到文件中
theitroad@theitroad:~$vi .ssh/authorized_keys
提供文件的安全600权限
theitroad@theitroad:~$chmod 600 .ssh/authorized_keys
从普通用户注销
theitroad@theitroad:~$exit
步骤4(禁用使用SSH的root用户登录)
在Ubuntu/Debian上
root@theitroad:~# vi /etc/ssh/sshd_config
找到线
PermitRootLogin yes
更改为
PermitRootLogin no
在CentOS/RHEL上
root@theitroad:~# vi /etc/ssh/sshd_config
找到线
#PermitRootLogin yes
更改为
PermitRootLogin no
重新启动SSH服务以确认更改
最后重新启动SSH服务以进行更改
root@theitroad:~# systemctl restart ssh
步骤5(复制专用SSH密钥)
root@theitroad:~# cat /root/.ssh/id_rsa
输出示例
将私密SSH密钥保存到记事本文件
打开记事本,然后将“私密SSH”密钥保存到其中,并使用.txt扩展名进行保存。
步骤6(下载并安装PuTTY软件)
我们可以从官方下载Putty软件包(putty-installer.msi)并将其安装在相应的Windows操作系统上。
将SSH私钥保存在.ppk扩展名中
从开始菜单中打开PuTTYGen
加载以.txt扩展名保存的已保存私钥SSH密钥
最后将私钥保存到其自己的.ppk扩展名中
步骤7(使用SSH私钥的基于SSH密钥的身份验证)
从开始菜单打开PuTTY
选择我们在本教程中创建的普通用户
选择专用SSH密钥文件进行身份验证
将IP设置为使用基于SSH私钥的登录名登录,最后点击open打开终端
如果我们成功通过了身份验证,我们将看到如下所示的终端窗口。
如果有人尝试使用基于SSH密码的登录名,则将获得拒绝访问的信息,这将使服务器如此安全且不易受到攻击。
现在我们已经在Windows 10上成功配置了基于Putty SSH密钥的登录。