修改本地SSH配置 通过AWS SSM登陆AWS EC2

作者:ezmsp易云服科技架构师雷凯栋

操作步骤:

  1. 需要在EC2上安装最新对Systems Manager代理
  2. 创建IAM用户并且配置对应权限可以进行登陆对应机器
  3. 更新本地AWS CLI到最新版本
  4. 在本地安装Session Manager插件
  5. 更新本地SSH配置

一、在对应版本的EC2(Linux系统X86_64)上安装SSM Agent

sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm

安装完成后运行代理:

sudo systemctl start amazon-ssm-agent

检查运行状态

sudo systemctl status amazon-ssm-agent

具体不同的操作系统安装方法请参考:
https://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/ssm-agent.html

二、创建具有SSM权限的IAM用户

创建自定义策略(ssm-test)如下:(修改红色部分信息)

{
  "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ssm:StartSession",
            "Resource": [
            "arn:aws:ec2:Region:Account ID:instance/Instance ID",
"arn:aws:ssm:*:*:document/AWS-StartSSHSession"
            ]
        }
    ]
}
  1. 创建user(ssm-user),添加以上自定义策略。
  2. 创建Role(ssm-role) 服务选择EC2,策略选择AmazonSSMManagedInstanceCore
  3. 将Role(ssm-role)附加到SSMEC2实例上。
修改本地SSH配置 通过AWS SSM登陆AWS EC2

三、更新本地(Linux系统)AWSCLI到V2版本。

  1. aws –version 查看是否为
  2. 版本如果不是可以通过sudoyumuninstall awscli 命令卸载
  3. 然后通过以下命令下载并安装
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

不同的操作系统安装方式请参考:https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/getting-started-install.html

四、在本地(Linux系统)安装Session Manager插件

  1. 下载Session Manager插件的RPM包
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_64bit/session-manager-plugin.rpm" -o "session-manager-plugin.rpm"
  1. 运行安装命令
sudo yum install -y session-manager-plugin.rpm
  1. 验证插件是否安装
session-manager-plugin 
如果安装成功则返回以下信息:
 The Session Manager plugin is installed successfully. Use the AWS CLI to start a session.
  1. 安装完成后可以通过配置AWSCLI,运行启动会话命令来测试插件
  2. 下载用户ssm-user的AKSK
修改本地SSH配置 通过AWS SSM登陆AWS EC2
  1. 在本地命令行使用命令aws configure 命令配置AKSK
修改本地SSH配置 通过AWS SSM登陆AWS EC2
  1. 执行命令: aws ssm start-session –target Instance ID
修改本地SSH配置 通过AWS SSM登陆AWS EC2

五、更新本地SSH配置

默认系统ssh配置文件在 ~/.ssh/ 下

  1. 进入到 ~/.ssh/下,创建config文件

vi config

将以下信息粘贴到配置文件中,保存退出。

# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
  1. 配置完成后进行对密钥文件进行授权,并且做登陆验证。chmod 600 key.pem
  2. 使用ssh -i key.pem ec2-user@instance ID 命令做登陆验证
修改本地SSH配置 通过AWS SSM登陆AWS EC2

注意:如果遇到以下报错信息,可以尝试切换到非root用户下进行重新登陆验证。

ssh: Could not resolve hostname i-0XXXXXXXXXX: nodename nor servname provided, or not known

发表评论

您的电子邮箱地址不会被公开。