You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过AWS SSM登录EC2实例后,如何SSH访问无SSM的其他EC2实例?

解决从SSM登录的Host A访问私有Host B的密钥传输问题

方法1:用AWS CLI的SSM文件传输命令

直接在本地终端执行以下命令,把本地的PEM文件传到Host A:

aws ssm send-file --file /本地路径/your-key.pem --instance-id HostA的实例ID --destination /home/ec2-user/your-key.pem

传输完成后,在Host A的会话里修改密钥权限:

chmod 600 ~/your-key.pem

之后就能用这个密钥登录Host B:

ssh -i ~/your-key.pem ec2-user@HostB的私有IP

方法2:通过SSM端口转发+SCP传输

  1. 先在本地终端启动SSM端口转发,把本地的2222端口映射到Host A的22端口:
aws ssm start-session --target HostA的实例ID --document-name AWS-StartPortForwardingSession --parameters '{"portNumber": ["22"], "localPortNumber": ["2222"]}'
  1. 新开一个本地终端,用SCP把PEM文件传到Host A:
scp -P 2222 /本地路径/your-key.pem ec2-user@localhost:/home/ec2-user/your-key.pem
  1. 回到Host A的SSM会话,修改密钥权限后即可SSH到Host B,步骤同方法1。

方法3:直接在SSM会话中创建密钥文件

  1. 本地打开你的PEM文件,复制所有内容(包括-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----)。
  2. 在Host A的SSM会话中,用vim创建密钥文件:
vim ~/your-key.pem
  1. 按i进入编辑模式,粘贴刚才复制的内容,按Esc后输入:wq保存退出。
  2. 修改文件权限:
chmod 600 ~/your-key.pem

之后就能正常SSH到Host B了。

注意:所有方法完成后,都要确保PEM文件的权限是600,否则SSH客户端会拒绝使用该密钥。

内容的提问来源于stack exchange,提问作者Sunny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:12:13