1、ssh证书登录介绍
Linux服务器ssh登录有密码登录和证书登录两种。如果使用密码登录,容易遭受密码泄露或者暴力破解,我们可以使用ssh证书登录并禁止使用密码登录,ssh证书登录通过公钥和私钥来完成整个连接过程,公钥保存在服务器上,私钥保存在本地。
2、证书登录步骤
客户端生成证书:包含私钥和公钥,私钥放在客户端,妥当保存,一般为了防止他人拷贝,会给私钥设置一个密码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥;
服务器添加公钥:把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中;
配置ssh服务,开启ssh证书登录功能;
ssh客户端添加私钥,即可使用该私钥登录到服务器。
3、创建证书
3.1、使用Xshell创建证书
打开Xshell,点击“工具”→“新建用户密钥生成向导”。
点击 “下一步”
输入密钥名称和密码,点击“下一步”。
输入密钥名称和密码,点击“下一步”。
点击“另存为文件”,保存公钥,记录公钥的位置,稍后会用。
点击“导出”,导出私钥文件。
输入私钥的密码,点击“确定”。
3.2、使用secureCRT创建证书
打开secureCRT,点击“工具”→“创建公钥”。
点击“下一页”。
输入私钥的密码和名称
点击“下一页”。
设置私钥保存文件名和路径,记录位置,稍后要用,点击“完成”。
点击“是”。
3.3、使用PuTTY创建证书
打开开始菜单,打开密钥生成工具“PuTTYgen”。
点击“Generate”,生成“证书文件”,期间请在空白处不断移动鼠标。
输入私钥名称和密码,分别点击“Save Public key”和“Save pricate key”,保存公钥文件和私钥文件,记录位置,稍后要用。
4、配置证书登录
使用用户名和密码正常登录到Linux系统,在用户目录(如/root)下输入
创建文件authorized_keys。
在键盘上按Insert,并用记事本打开第1节生成的公钥文件,全选公钥文件的内容,粘贴到会话中,然后按键盘Esc键,输入:wq,回车,保存文件。
编辑ssh配置文件,请运行:
vim /etc/ssh/sshd_config
打开sshd_config文件编辑界面,找到“PubkeyAuthentication yes”,删除前面的#。
公钥路径设为 (即默认值,不用修改)。
找到 PasswordAuthentication
,右边改成no。
保存文件。
执行重启ssh服务命令:
service sshd restart
5、使用证书登录
5.1、使用Xshell登录
新建会话或者打开已保存的会话。
在SSH用户身份验证可看到密码输入文本框为灰色,无法输入,只能使用证书登录。
选择已保存的用户密钥,如果没有保存,请导入私钥,点击“浏览”→“用户密钥”。
点击“导入“。
选择私钥文件,点击打开,输入私钥文件的密码,点击确定。
选中已导入的用户密钥,点击确定。
再次输入私钥密码,点击确定。
成功登录到服务器。
5.2、使用secureCRT登录
新建会话或者选择已保存的会话。
右键会话,点击“属性“。
选中SSH2-身份验证-PublicKey,点击“属性”。
在身份或证书文件右边点击“…”,选择私钥文件。
点击“确定”。
双击需要登录的服务器,输入私钥的密码,点击“确定”。
即可正常登录服务器。
5.3、使用PuTTY登录
首先我们要打开PuTTYgen,转换私钥为PuTTY专用文件(.ppk)。
点击“Load“。
找到私钥文件,打开,输入私钥的密码,点击“OK”。
点击“确定”。
点击“Save private key”,保存PuTTY专用私钥文件。
打开PuTTY,输入服务器的IP地址。
在Connection→SSH→Auth下,点击“Browse…”,导入私钥文件。
点击“Open”,输入用户名,即可成功登录到服务器”。
6、FAQ
Q:一个证书可以在多台服务器上共用吗?
A:可以!按照本操作指南将生成的公钥部署到不同服务器上,使用同一个私钥可以登录。
Q:PuTTY生成的私钥为专用格式(.ppk),如何导入到Xshell、SecureCRT等其他ssh工具?
A:请打开PuTTYgen,并按照视频教程步骤进行私钥转换,转成pem格式(即教程中使用Xshell和SecureCRT生成的私钥格式),然后将转换后的文件导入到Xshell、SecureCRT等ssh工具即可。具体操作步骤详见视频末尾。
Q:证书误删除/丢失怎么办?
A:如果您使用物理服务器,请在服务器接上显示器;如果您使用云服务器,请登录管理平台,进入vnc控制台,正常使用用户名和密码登录,恢复启用密码登录功能后,再从头开始按照教程制作新证书,并上传到服务器。
如果还不会的请观看视频指南:点击跳转视频讲解