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日 ,已超过266天没有更新,若内容或图片失效,请留言反馈。
本文允许转载,但请在转载时请以超链接或其它形式标明文章出处
@Doug Shume it's ok for me , you can post here.
Saved as a favorite, I like your website!
If some one wishes to be updated with hottest technologies after that he must be visit this site and be up to date daily.
Heello would you mind sharing which blog platform you're using? I'm planning to start my own blog in the near future but I'm having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your layout seems different then moost blogs and I'm looking for something completely unique. P.S Apologies forr being off-topic butt I had to ask!
Thanks to my father who shared with me regarding this webpage, this website is genuinely amazing.
Hi, I have an overflow of customers that I'd like to send to you but I want to make sure you can handle more leads, let me know if you'd like me to send you more info.
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 怎么办啊