Nag*_*nan 4 amazon-ec2 amazon-web-services boto3 aws-ssm
您好,需要通过 ssm 代理将文件传输到 ec2 机器。我已经在 ec2 实例中成功安装了 ssm-agent,并且从 UI 中我可以通过“会话管理器”启动会话并登录到该 ec2 机器的 shell。
现在我尝试通过 boto3 并使用以下代码使其自动化,
ssm_client = boto3.client('ssm', 'us-west-2')
resp = client.send_command(
DocumentName="AWS-RunShellScript", # One of AWS' preconfigured documents
Parameters={'commands': ['echo "hello world" >> /tmp/test.txt']},
InstanceIds=['i-xxxxx'],
)
Run Code Online (Sandbox Code Playgroud)
上面的工作正常,我能够在远程计算机中创建一个名为 test.txt 的文件,但他是通过 echo 命令发送的,相反,我需要通过 ssm 代理将文件从本地计算机发送到此删除 ec2 计算机,因此我执行了下列的 ,
使用代理修改“/etc/ssh/ssh_config”,如下所示,
# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
Run Code Online (Sandbox Code Playgroud)
然后在上面的代码中,我尝试使用下面的代码启动会话,这也成功了。
response = ssm_client.start_session(Target='i-04843lr540028e96a')
Run Code Online (Sandbox Code Playgroud)
现在我不确定如何使用此会话响应或使用此 aws ssm 会话并发送文件
环境描述: 源:EKS 集群中运行的 pod 目标:ec2 机器(运行 ssm 代理) 要传输的文件:重要的私钥,将由 ec2 机器中的某些进程使用,不同机器的私钥会有所不同
尝试过的解决方案:
基本上我想实现此aws文档中提到的scp: https: //docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#sessions-启动-ssh
如果您有 SSH over SSM 设置,则可以使用普通的 scp,如下所示:
scp file.txt ec2-user@i-04843lr540028e96a
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,请确保您拥有:
如果您需要更多详细信息,请向我提供有关您的设置的更多信息,我会尽力提供帮助。
| 归档时间: |
|
| 查看次数: |
39794 次 |
| 最近记录: |