如何为AWS Lightsail实例配置多SSH密钥并实现团队批量访问
解决方案:AWS Lightsail实例实现多团队成员SSH访问
Lightsail确实没有直接支持「密钥对群组」绑定的功能,但咱们有几个实用的办法来实现团队全员访问,我给你拆解下:
方案1:手动合并团队公钥到实例的authorized_keys
这是最直接的小团队方案,操作步骤很简单:
- 先通过已绑定的那个密钥对登录到Lightsail实例
- 编辑
~/.ssh/authorized_keys文件(如果没有就先创建~/.ssh目录和对应文件) - 把每个团队成员的SSH公钥逐行添加到这个文件里(注意每一行是完整的公钥字符串,从
ssh-rsa或ssh-ed25519开头到末尾的备注) - 务必设置正确的权限,不然SSH会拒绝连接:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys - 保存退出后,每个成员就能用自己的私钥SSH登录这个实例了
方案2:集中管理公钥自动同步(适合多实例/大团队)
如果你们团队成员多、或者有多个Lightsail实例,可以用AWS Systems Manager Parameter Store来统一管理公钥,再通过脚本自动同步:
- 在Parameter Store里创建一个参数(比如
/team-ssh-keys/all-public-keys),把所有成员的公钥按行粘贴进去 - 确保Lightsail实例上安装了SSM Agent(Lightsail的Amazon Linux和Ubuntu镜像默认已预装)
- 写个简单的脚本拉取参数并覆盖到
authorized_keys:#!/bin/bash aws ssm get-parameter --name "/team-ssh-keys/all-public-keys" --with-decryption --query "Parameter.Value" --output text > ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys - 可以把这个脚本加入cron定时任务,或者设置成实例启动脚本,这样公钥更新后实例能自动同步
方案3:改用SSM Session Manager(更安全,无需管理密钥)
如果你们愿意跳出传统SSH密钥的思路,SSM Session Manager是个更省心的选择:
- 确保Lightsail实例能访问SSM服务(要么有公网IP,要么在VPC里配置了SSM的VPC端点)
- 给团队成员的IAM账号添加允许SSM会话的权限(比如自定义权限策略,允许
ssm:StartSession针对目标实例) - 成员可以直接通过AWS控制台、AWS CLI或者AWS Toolkit连接实例,完全不用SSH密钥,也不用担心密钥泄露的问题
注意事项
- 所有公钥必须是完整的公钥内容,不能有换行错误
authorized_keys的权限一定要严格设置,否则SSH服务会忽略这个文件- 如果用SSM方案,要确保实例的IAM角色关联了
AmazonSSMManagedInstanceCore权限策略
内容的提问来源于stack exchange,提问作者Matthew Olsen
相关产品推荐
相关产品推荐

