SSH通过AWS SSM实战指南

SSH通过AWS SSM实战指南

ssh-over-ssm SSH over AWS SSM. No bastions or public-facing instances. SSH user management through IAM. No requirement to store SSH keys locally or on server. 项目地址: https://gitcode.com/gh_mirrors/ss/ssh-over-ssm


项目介绍

SSH over AWS SSM 是一个简洁的解决方案,它允许开发者和系统管理员无需通过传统的bastion主机或公开访问实例,即可直接通过AWS Systems Manager (SSM)进行SSH连接到EC2实例。此方法特别适合那些对安全性和管理性有着高要求的场景,因为它依赖于IAM权限而非本地存储的SSH密钥。用户只需拥有足够的IAM权限以及能够访问其区域内的SSM端点,就能轻松实现加密的远程连接,支持SSH的所有高级功能如代理跳转、端口转发等。

项目快速启动

环境准备

  1. 确保条件:EC2实例需能访问ssm.[region].amazonaws.com的443端口;附加了允许SSM访问的IAM实例角色;已安装SSM Agent。
  2. 本地环境:安装AWS CLI v2和Session Manager插件。
  3. 下载脚本:从GitHub克隆项目或直接下载ssh-ssm.sh脚本至本地可执行路径。
git clone https://github.com/elpy1/ssh-over-ssm.git
cp ssh-over-ssm/ssh-ssm.sh ~/bin/  # 或其他PATH目录
chmod +x ~/bin/ssh-ssm.sh

配置SSH

编辑~/.ssh/config,添加以下配置以启用SSH通过SSM的ProxyCommand:

Host *
  TCPKeepAlive yes
  ServerAliveInterval 30
  ConnectTimeout 10

Match Host i-*
  ProxyCommand ssh-ssm.sh %h %r
  IdentityFile ~/.ssh/ssm-ssh-tmp
  StrictHostKeyChecking no
  BatchMode yes

更新SSM Agent(如果需要)

使用提供的脚本检查并更新所有实例上的SSM Agent:

python3 ssm-tool instance  # 列出实例状态
python3 ssm-tool --update  # 自动更新所有实例的SSM Agent(确保正确设置了AWS_PROFILE)

进行SSH连接

现在可以通过指定用户名和实例ID进行SSH连接:

ssh ec2-user@i-0123456789abcdef

记得设置正确的AWS Profile环境变量或者在命令中指定:

AWS_PROFILE=my-profile ssh ec2-user@i-0123456789abcdef

应用案例和最佳实践

  • 无密码/密钥的远程操作:利用IAM策略控制SSH访问,避免在服务器上存放私钥。
  • 临时密钥管理:脚本自动处理公钥的上传与删除,提高安全性。
  • 动态实例管理:结合自动化工具,快速接入新实例或更换失效实例。
  • 细粒度权限控制:通过SSM文档限制特定任务,增强安全性。

典型生态项目

虽然此示例专注于ssh-over-ssm本身,但在AWS生态中,它常与云原生的基础设施即代码工具如Terraform、CloudFormation搭配使用,用于自动化部署和管理SSH可通过SSM的EC2实例。此外,结合CI/CD流程(如Jenkins或GitLab CI),可以进一步自动化测试环境的构建与维护,其中SSH连接便于进行手动介入调试或执行特殊命令。


以上步骤和建议提供了一个清晰的路径来开始使用SSH over AWS SSM,不仅简化了远程运维工作,也加强了安全控制。通过这种模式,运维团队能够在保持高效的同时,满足更严格的访问控制需求。

ssh-over-ssm SSH over AWS SSM. No bastions or public-facing instances. SSH user management through IAM. No requirement to store SSH keys locally or on server. 项目地址: https://gitcode.com/gh_mirrors/ss/ssh-over-ssm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郦岚彬Steward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值