Windows下Putty使用ssh密钥对远程连接阿里云服务器

文章目录

  • 一、背景
  • 二、密钥对
    • 1、创建密钥对
    • 2、绑定密钥对至服务器实例
  • 三、配置安全组规则
  • 四、生成PUTTY格式的私钥
  • 五、Putty使用密钥对远程登录服务器
  • 六、配置Putty长时连接
  • 七、踩坑

一、背景

之前一直使用用户名+密码的方式远程登录阿里云服务器。经过一段时间,发现这种方式有如下缺点:

  • 比较繁琐,每次都需要输入密码,
  • 不安全,密码有可能被暴力破解,阿里云经常提醒服务器有安全漏洞。

Windows下Putty使用ssh密钥对远程连接阿里云服务器_第1张图片
so,现在采取比较安全且便捷的SSH密钥对方式进行登录,在配置过程中,也踩了个大坑,所以记录一下,希望对需要的朋友提供一些帮助。

二、密钥对

1、创建密钥对

1、登录阿里云,选择左侧产品与服务–>云服务器ECS–>网络与安全–>密钥对,点击右上角创建密钥对,创建密钥。
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第2张图片
2、创建密钥,名称随意,类型选择“自动创建密钥对”,点击确定,生成密钥对,注意此处必须要将私钥下载至本地,后续用于密钥配对。
注:如果使用的是chrome内核的浏览器,浏览器会自动下载私钥。

Windows下Putty使用ssh密钥对远程连接阿里云服务器_第3张图片

2、绑定密钥对至服务器实例

创建密钥后,返回密钥管理页面,点击绑定密钥对,进入如下界面:Windows下Putty使用ssh密钥对远程连接阿里云服务器_第4张图片

点击左侧实例名称,将其添加到右侧列表,确定。
这样就成功将密钥对绑定到了服务器实例。

三、配置安全组规则

若不配置安全组规则,则无法使用SSH密钥对进行远程登录,所以此处对服务器安全组进行设置:
1、进入安全组:
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第5张图片
2、在安全组入方向,开放SSH(22)端口,授权对象为0.0.0.0
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第6张图片

四、生成PUTTY格式的私钥

因为此处使用Putty进行远程登录,而阿里云服务器生成的私钥格式为pem,所以需要使用puttygen.exe将其格式修改为Putty可识别的密钥格式ppk
步骤如下:
1、进入Putty安装目录,运行puttygen.exe。
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第7张图片
此处将阿里云私钥导入,注意此处导入格式选择ALL FILESWindows下Putty使用ssh密钥对远程连接阿里云服务器_第8张图片

Windows下Putty使用ssh密钥对远程连接阿里云服务器_第9张图片

单击 Save private key。PuTTYgen 会显示一条关于在没有口令的情况下保存密钥的警告,单击 是(Y)。指定与密钥对相同的私钥名称,保存。PuTTY 会自动为文件添加 .ppk 扩展名。
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第10张图片

可以看到生成了ppk格式的密钥。

五、Putty使用密钥对远程登录服务器

进入Putty页面,选择SSH->Auth,导入ppk格式的密钥。
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第11张图片
导入之后,返回主页面,点击Session。
在 Host Name (or IP address) 里输入需要连接的实例公网IP 地址,
在 Port 里输入端口号 22
Connection type 选择SSH

至此大功告成?不,连接之后会输出消息Server refused our key
这个地方我在网上搜索了很久,各种解决办法层出不穷,最后发现需要重启云服务器实例,重启之后即可通过SSH密钥连接。
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第12张图片

六、配置Putty长时连接

笔者初使用Putty时,经常遇到这种情况:偶尔切换到网页隔一段时间,再切回到putty会发现无法使用,状态显示为inactive,这是因为没有重复发包给服务器,导致服务器休眠.
可以修改putty,每隔一段时间(此处示例为10s,默认为0s)发给服务器一个包,让服务器不休眠。
Windows下Putty使用ssh密钥对远程连接阿里云服务器_第13张图片

七、踩坑

绑定密钥对之后,务必要重启一下阿里云 ECS 云服务器,否则之后进行操作连接,会报错Server refused our key。

你可能感兴趣的:(运维,ssh,阿里云,云服务器,putty)