下面我将为您提供一个从创建密钥对到登录的完整、清晰的步骤。
免密登录的核心是“公私钥对”:
1、私钥:保存在您的本地电脑上,像一个独一无二的、绝不能泄露的“钥匙”。
2、公钥:放置在华为云主机的指定文件中,像一个“锁芯”。
登录时,您的本地SSH客户端会用“私钥”去匹配服务器上的“公钥”,匹配成功即可登录,无需输入密码。
方法一:通过华为云控制台创建和绑定密钥对(推荐新手)
这种方法最直观,由华为云帮您保管公钥。
1、 登录华为云控制台。
2、 进入弹性云服务器 (ECS) 服务页面。
3、 在左侧导航栏,找到并点击“密钥对”。
4、 点击右上角的“创建密钥对”。
5、填写信息:
名称为您密钥对起个名字,例如my-ecs-key
。
创建方式
自动生成(推荐) 华为云会为您生成一个密钥对,并让您直接下载私钥文件(.pem
格式)。
导入公钥如果您本地已经有现成的SSH密钥对(如id_rsa.pub
),可以将公钥内容粘贴进来。
6、关键操作:如果选择“自动生成”,点击“确定”后,浏览器会立即下载私钥文件,请务必将此文件妥善保存在一个安全的位置(例如~/.ssh/
目录下),这是您获取私钥的唯一机会,华为云不存储您的私钥。
您可以在创建新ECS实例时 或为已有实例绑定。
创建新实例时
* 在“配置网络”后的“高级配置”步骤中,找到“登录方式”。
* 选择“密钥对”。
* 从下拉列表中选择您刚刚创建好的密钥对(例如my-ecs-key
)。
为已有实例绑定
1. 在ECS实例列表中,找到目标实例,点击操作列的“更多” ->“密码/密钥对” ->“绑定密钥对”。
2. 选择您创建好的密钥对,点击“确定”。
3.重要:绑定过程需要重启ECS实例才能生效,请选择在业务低峰期操作,或根据提示确认重启。
绑定并生效后,您就可以使用私钥文件进行免密登录了。
1、打开您的终端(Linux/macOS)或PowerShell/Git Bash(Windows)。
2、 使用ssh
命令并指定私钥路径进行连接,命令格式如下:
ssh -i /path/to/your/private-key.pem root@<你的ECS弹性公网IP>
-i
指定身份文件,即您的私钥文件路径。
/path/to/your/private-key.pem
替换为您的私钥文件在本地电脑上的实际路径,如果您将my-ecs-key.pem
文件放在了用户目录下的.ssh
文件夹里,路径可能是~/.ssh/my-ecs-key.pem
。
root
默认用户是root
,如果您创建的是Ubuntu等镜像,默认用户可能是ubuntu
或ec2-user
,请根据实际情况修改。
<你的ECS弹性公网IP>
替换为您的ECS实例的公网IP地址。
示例:
ssh -i ~/.ssh/my-ecs-key.pem root@123.123.123.123
执行此命令后,如果一切正常,您将直接登录到云主机,无需输入密码。
方法二:手动上传公钥到已有ECS(适合已能用密码登录的情况)
如果您已经有一台可以通过密码登录的ECS,并且想在本地使用免密登录,可以采用此方法。
步骤 1:在本地生成SSH密钥对(如果还没有)
在您的本地电脑终端中执行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa
指定密钥类型为 RSA。
-b 4096
指定密钥长度为 4096 位,更安全。
-C
添加一个注释,通常用您的邮箱。
按回车后,系统会提示您保存密钥的位置(默认~/.ssh/id_rsa
),直接回车即可,接着会提示您输入一个密码来保护您的私钥(可选,为了绝对免密可直接回车留空)。
完成后,您会在~/.ssh/
目录下得到两个文件:
id_rsa
您的私钥,务必保密。
id_rsa.pub
您的公钥,可以公开。
使用密码登录到您的华为云ECS:
ssh root@<你的ECS弹性公网IP> 输入密码
登录成功后,执行以下命令,将您本地追加到服务器的授权密钥文件中:
切换到ssh目录 cd ~/.ssh 确保 authorized_keys 文件存在且有正确权限 touch authorized_keys chmod 600 authorized_keys
不要关闭这个终端窗口,打开一个新的本地终端窗口,使用以下命令将您本地的公钥文件内容上传并追加到服务器的authorized_keys
文件中:
在您本地电脑的新终端中执行 ssh-copy-id -i ~/.ssh/id_rsa.pub root@<你的ECS弹性公网IP>
系统会提示您输入root用户的密码,输入后,公钥就会被自动上传并配置好。
(如果您的系统没有ssh-copy-id
命令),可以手动操作:
1、 在本地电脑查看公钥内容:cat ~/.ssh/id_rsa.pub
2、 全选并复制输出的内容。
3、 回到之前登录到ECS的终端窗口,用编辑器(如vim
或nano
)打开~/.ssh/authorized_keys
文件。
4、 将复制的内容粘贴到文件末尾。
5、 保存并退出编辑器。
从您本地的终端,现在可以直接尝试登录:
ssh root@<你的ECS弹性公网IP>
如果配置正确,您将无需输入密码直接登录成功。
1、权限问题:确保私钥文件和服务器上的authorized_keys
文件权限正确。
本地私钥chmod 600 ~/.ssh/your-private-key.pem
服务器authorized_keys
chmod 600 ~/.ssh/authorized_keys
2、保护私钥:您的私钥是最高机密,切勿发送给他人或上传到不安全的地方。
3、默认用户:不同操作系统的默认用户不同。
CentOS/Fedora/OpenEuler通常是root
Ubuntu/Debian通常是ubuntu
OpenSUSE/SLES通常是root
或ec2-user
* 您也可以在华为云ECS的“实例详情”页面查看到。
4、故障排查:如果登录失败,可以添加-v
参数查看详细连接过程,帮助定位问题:
ssh -v -i ~/.ssh/your-key.pem root@your-ip
按照以上步骤操作,您就能轻松实现华为云主机的免密登录了,对于新手,强烈推荐从方法一 开始。
文章摘自:https://idc.huochengrm.cn/zj/17421.html
评论