gossm:交互式命令行工具,轻松远程管理AWS EC2实例
项目介绍
gossm是一款跨平台的命令行工具,它极大地简化了在AWS EC2实例上远程执行shell命令的过程。该工具利用AWS Systems Manager服务,通过预装在Windows、Amazon Linux和Ubuntu AMI上的SSM代理实现远程控制。无需开放EC2服务器上的22端口(SSH默认端口),即可通过SSM Session Manager进行ssh或scp操作,因为它采用SSH协议隧道技术。此外,gossm还支持MFA认证,临时凭证默认有效期为6小时,并可配置环境变量以使用这些凭据。
项目快速启动
安装gossm
对于Mac用户,推荐使用Homebrew进行安装:
$ brew tap gjbae1212/gossm
$ brew install gossm
若你的开发环境不适用Homebrew,可以查阅gossm的GitHub页面获取其他安装方式。
快速连接到EC2实例
确保你的EC2服务器已安装aws-ssm-agent并绑定了AmazonSSMManagedInstanceCore
IAM策略。接下来,你可以使用以下命令选择服务器并开始session:
gossm start-session <instance-id>
应用案例和最佳实践
日常运维管理
-
远程命令执行:快速解决问题,比如重启服务,而不需要直接暴露SSH端口。
gossm exec <instance-id> "sudo systemctl restart nginx"
-
文件传输:安全地发送或从EC2实例接收文件,无需设置额外的安全组规则。
gossm scp ./local-file.txt <instance-id>:~/remote-dir/
使用MFA增强安全性
为了进一步提升安全性,gossm支持通过MFA认证生成临时凭证。配置完成后,执行命令前激活MFA:
gossm mfa
然后,将环境变量指向保存了临时凭证的文件:
export AWS_SHARED_CREDENTIALS_FILE=$HOME/.aws/credentials_mfa
典型生态项目
虽然gossm本身是独立工具,但其生态紧密关联于AWS生态系统。结合使用AWS CLI和其他云原生工具,可构建自动化运维流程。例如,通过脚本自动发现未安装aws-ssm-agent的EC2实例,并部署该代理,确保所有实例都符合团队的最佳实践标准。
gossm在与AWS Systems Manager的集成中扮演关键角色,使得DevOps团队能够构建出更为健壮和灵活的基础设施管理方案,特别是在进行大规模EC2实例管理时。通过与AWS其他服务如CloudFormation或Lambda的综合运用,开发者可以实现自动化的资源部署与维护,形成一套完整的云端运维体系。
以上就是关于gossm的基本介绍、快速启动指南、应用案例及其在AWS生态系统中的应用概览。掌握gossm能大大提升对AWS EC2实例的管理和运维效率。
- CangjieCommunity为仓颉编程语言开发者打造活跃、开放、高质量的社区环境Markdown00
- redis-sdk仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。Cangjie032
- 每日精选项目🔥🔥 推荐每日行业内最新、增长最快的项目,快速了解行业最新热门项目动态~ 🔥🔥02
- qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workersTSX022
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML07
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript085
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript09
- CommunityCangjie-TPC(Third Party Components)仓颉编程语言三方库社区资源汇总05
- Bbrew🍺 The missing package manager for macOS (or Linux)Ruby01
- byzer-langByzer(以前的 MLSQL):一种用于数据管道、分析和人工智能的低代码开源编程语言。Scala04