SSH密钥对是一种安全便捷的登录认证方式,用于在SSH协议中进行身份验证和加密通信。由公钥和私钥组成且仅支持Linux实例,满足您对更高安全性、便利性和自动化能力的业务需求。您可以直接在Windows环境和支持SSH命令的环境(例如Linux环境、Windows下的MobaXterm)中使用SSH密钥对连接Linux实例。
创建SSH密钥对
创建密钥对后,系统将自动下载私钥,请您妥善保管。使用密钥对绑定ECS实例后,如果没有私钥,您将无法登录该ECS实例。您在一个地域最多可以拥有500个密钥对。本文介绍如何在ECS控制台上创建SSH密钥对。
操作步骤
1.登录ECS管理控制台。
2.在左侧导航栏,选择网络与安全 > 密钥对。
3.在页面左侧顶部,选择目标资源所在的资源组和地域。地域
4.在密钥对列表页面,单击创建密钥对。
5.在创建密钥对页面,完成以下配置。
密钥对名称
密钥对名称不能和已有密钥对重复。长度为2~128个字符,不能以特殊字符及数字开头,只可包含特殊字符中的英文句号(.)、下划线(_)、短划线(-)和冒号(:)。
创建类型
您可以选择以下任一类型创建密钥对。建议您选择自动新建密钥对,并及时保存私钥。
自动新建密钥对:系统会为您自动创建密钥对。创建完成后将自动下载私钥,您只有这一次下载私钥的机会,因此请妥善保存私钥文件。
导入已有密钥对:您可以自行导入Base64编码的公钥内容。
资源组
您可以为密钥对指定一个资源组,实现对资源的分组管理,详情请参见资源组。
标签
您可以为密钥对绑定一个或多个标签,便于搜索和资源聚合,详情请参见标签概述。
单击确定。
密钥对创建成功后,浏览器自动下载私钥文件(密钥对名称.pem)到本地电脑。
为单台ECS实例绑定密钥对
理论上 ,完成上述步骤,直接可以在秘钥列表点击绑定密钥对,就直接可以点选绑定,这个步骤需要重启,如果这步没操作也可以用下列方式。:
1.登录ECS管理控制台。
2.在左侧导航栏,选择实例与镜像 > 实例。
3.在页面左侧顶部,选择目标资源所在的地域。地域
4.找到需要操作的实例,在操作列中,选择image > 实例属性 > 绑定密钥对。
5.在选择密钥对下拉列表中,选择需要绑定到该ECS实例的密钥对,然后单击确定。
重启或启动ECS实例,使操作生效。
为多台ECS实例批量绑定密钥对
1.登录ECS管理控制台。
2.在左侧导航栏,选择网络与安全 > 密钥对。
3.在页面左侧顶部,选择目标资源所在的地域。地域
4.找到需要操作的密钥对,在操作列中,单击绑定密钥对。
5.在选择ECS实例栏中,选中需要绑定该密钥对的ECS实例名称,单击>图标,将其移入已选择栏中。
说明
如果选择ECS实例栏中的ECS实例名称显示为灰色,表示该实例为Windows实例,不支持SSH密钥对。
6.单击确定。
重启或启动ECS实例,使操作生效。
如果ECS实例处于运行中状态,需要重启实例使操作生效。具体操作,请参见重启实例。
如果ECS实例处于停止中状态,需要启动实例使操作生效。具体操作,请参见启动实例。
使用第三方客户端通过密钥认证登录Linux实例
前提条件
1.已创建密钥对并下载.pem私钥文件。具体操作,请参见创建SSH密钥对。
2.实例处于运行中状态。
3.已为实例绑定密钥对,具体操作,请参见绑定SSH密钥对。
4.创建实例时分配了固定公网IP或为实例绑定了EIP,具体操作,请参见绑定ECS实例。
5.已为实例所在的安全组添加安全组规则,并放行对相应端口(例如SSH协议默认的22端口)的访问。具体操作,请参见添加安全组规则。
连接Linux实例
根据本地设备不同的环境,您可以通过不同的方式使用密钥远程连接Linux实例。
在Windows环境中使用密钥对
本节以PuTTYgen为例介绍如何将私钥文件格式从.pem转换为.ppk,并以PuTTY为例介绍如何使用密钥对连接Linux实例。
**1.下载并安装PuTTYgen和PuTTY。
下载链接如下:
PuTTYgen
PuTTY
2.将.pem私钥文件转换为.ppk私钥文件。**
启动PuTTYgen。
选择Type of key to generate为RSA,然后单击Load。
选择All Files(*.*)。
选择待转换的.pem私钥文件。
在弹出的对话框中,单击确定。
单击Save private key。
在弹出的对话框中,单击是。
指定.ppk私钥文件的名称,然后单击保存。
在这个过程中建议给生成的key增加一个密码
在密码保护"key passphrase"对话框中,输入密码,在"confirm passphrase"以确认。这样在登陆的时候会提示输入密码后才可以登陆。
启动PuTTY。
3.配置用于身份验证的私钥文件。
选择Connection > SSH > Auth > Credentials(部分软件直接在Connection > SSH > Auth最下端)。
在Private key file for authentication:区域,单击Browse…。
选择转换好的.ppk私钥文件。
配置连接Linux实例所需的信息。
单击Session。
在Host Name (or IP address)中输入登录账号和实例公网IP地址。
格式为username@IP 地址,例如ecs-user@10.10.xx.xxx。
在Port中输入端口号22。
选择Connection type为SSH。
单击Open。
当出现以下提示时,说明您已经成功地使用SSH密钥对登录了实例。
在支持SSH命令的环境中使用密钥对(通过命令配置信息)
本节介绍如何在支持SSH命令的环境(例如Linux、Windows下的MobaXterm)中通过命令配置所需信息,并通过SSH命令登录Linux实例。
找到.pem私钥文件在本地机上的存储路径,例如~/.ssh/ecs.pem。
此处路径和文件名称仅为示例,在后续命令中请根据实际情况修改。
运行以下命令修改私钥文件的属性。
chmod 400 [.pem私钥文件在本地机上的存储路径]
示例如下:
chmod 400 ~/.ssh/ecs.pem
运行以下命令连接至实例。
ssh -i [.pem私钥文件在本地机上的存储路径] username@[公网IP地址]
示例如下:
ssh -i ~/.ssh/ecs.pem ecs-user@10.10.xx.xxx
在支持SSH命令的环境中使用密钥对(通过config文件配置信息)
本节介绍如何在支持SSH命令的环境(例如Linux、Windows下的MobaXterm)中通过命令配置所需信息,并通过SSH命令登录Linux实例。
找到.pem私钥文件在本地机上的存储路径,例如~/.ssh/ecs.pem。
此处路径和文件名称仅为示例,在后续命令中请根据实际情况修改。
运行以下命令修改私钥文件的属性。
chmod 400 [.pem私钥文件在本地机上的存储路径]
示例如下:
chmod 400 ~/.ssh/ecs.pem
运行以下命令,进入用户主目录下的.ssh目录,并创建config文件。
cd ~/.ssh
vim config
在config配置文件内,按i进入编辑模式,添加如下配置项。
配置一台ECS实例的示例内容如下:
# 输入ECS实例的别名,用户SSH远程连接。
Host ecs
# 输入ECS实例的公网IP地址。
HostName 121.196.**.**
# 输入端口号,默认为22。
Port 22
# 输入登录账号。
User ecs-user
# 输入.pem私钥文件在本机的地址。
IdentityFile ~/.ssh/ecs.pem
配置两台ECS实例的示例内容如下:
# 输入ECS实例的别名,用户SSH远程连接。
Host ecs1
# 输入ECS实例的公网IP地址。
HostName 121.196.**.**
# 输入端口号,默认为22。
Port 22
# 输入登录账号。
User ecs-user
# 输入.pem私钥文件在本机的地址。
IdentityFile ~/.ssh/ecs.pem
# 输入ECS实例的别名,用户SSH远程连接。
Host ecs2
# 输入ECS实例的公网IP地址。
HostName 121.196.**.**
# 输入端口号,默认为22。
Port 22
# 输入登录账号。
User ecs-user
# 输入.pem私钥文件在本机的地址。
IdentityFile ~/.ssh/ecs.pem
添加完成后,按Esc键,并输入:wq保存config文件。
运行以下命令,重启SSH服务。
**警告
若重启SSH服务失败,会存在SSH服务不可用风险,可能导致业务中断,建议您在非业务高峰期时执行该操作。**
service sshd restart
运行命令连接至实例。
ssh [ECS实例的别名]
示例如下:
ssh ecs
MAC操作方法:
在 macOS 中,您可以使用 ssh 命令来连接远程服务器,而不需要 PuTTY 或 PuTTYgen。以下是使用 PuTTYgen 生成的 .ppk 格式私钥文件在 macOS 终端中连接 SSH 的步骤:
将私钥文件从 .ppk 格式转换为 OpenSSH 格式:
macOS 上的 SSH 客户端使用 OpenSSH 格式的密钥。您需要将 PuTTYgen 生成的 .ppk 格式密钥转换为 OpenSSH 格式。您可以使用 PuTTYgen 或者使用 ssh-keygen 命令来完成转换。
使用 PuTTYgen 转换密钥的步骤:
打开 PuTTYgen。
点击 "Load" 按钮,选择您的 .ppk 格式私钥文件。
在菜单中选择 "Conversions" -> "Export OpenSSH key",然后保存为一个新文件。
使用 ssh-keygen 命令转换密钥的步骤:
ssh-keygen -i -f path/to/your/private_key.ppk > path/to/your/converted_private_key
将私钥文件放置在 ~/.ssh/ 目录下:
将转换后的 OpenSSH 格式私钥文件放置在您的 macOS 用户的 ~/.ssh/ 目录下。如果该目录不存在,可以手动创建。
设置私钥文件的权限:
在终端中运行以下命令,确保私钥文件的权限正确:
chmod 600 ~/.ssh/your_private_key
连接到远程服务器:
使用 ssh 命令连接到远程服务器:
ssh -i ~/.ssh/your_private_key username@remote_host
将 your_private_key 替换为您的私钥文件名,username 替换为您在远程服务器上的用户名,remote_host 替换为远程服务器的 IP 地址或主机名。
输入密码(如果设置了密码):
如果您在私钥文件生成过程中设置了密码,系统会提示您输入密码。输入密码后,您应该可以成功连接到远程服务器。
通过以上步骤,您可以在 macOS 终端中使用 PuTTYgen 生成的私钥文件连接到远程服务器。
参考连接:https://help.aliyun.com/zh/ecs/user-guide/connect-to-a-linux-instance-by-using-an-ssh-key-pair
版权属于: 三三世界-百宝箱
本文链接: http://33f.net/safe/connect_to_linux_by_ssh-_key_pair.html
本文最后更新于2024年03月30日 ,已超过738天没有更新,若内容或图片失效,请留言反馈。
本文允许转载,但请在转载时请以超链接或其它形式标明文章出处
@Doug Shume it's ok for me , you can post here.
zh.us.to 有效
kms.03k.org 有效
kms.chinancce.com
kms.shuax.com 有效
kms.dwhd.org 有效
kms.luody.info 有效
kms.digiboy.ir 有效
kms.lotro.cc 有效
www.zgbs.cc 有效
cy2617.jios.org 有效
@ 权限问题,试试sudo 再加命令。
你好提示Permission denied 怎么办啊