gpt4 book ai didi

bash - 通过堡垒服务器在私有(private) IP 上使用 boto SSH 到 EC2 实例

转载 作者:行者123 更新时间:2023-12-02 13:47:54 25 4
gpt4 key购买 nike

我正在尝试使用 boto 在 EC2 实例上执行一些 bash 脚本。 Boto 提供了一种通过 SSH 连接到公共(public) IP 上的 EC2 实例的方法,但在我的例子中,这些实例只有私有(private) IP。 SSH 在这些实例上完成的方式是使用一个主机,该主机可以使用私有(private) IP(堡垒主机)在所有实例上进行 SSH。以下是连接到公共(public) IP 上的实例的脚本:

s3_client = boto3.client('s3')
s3_client.download_file('mybucket','key/mykey.pem', '/tmp/mykey.pem')
k = paramiko.RSAKey.from_private_key_file("/tmp/mykey.pem")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
host=event
print "Connecting to " + host
c.connect( hostname = host, username = "ec2-user", pkey = k )

如果 host 有私有(private) IP 而不是公钥,如果我们想通过具有公共(public) IP 的堡垒主机连接,如何连接到实例 P.P.P.P

最佳答案

如果您的要求是在 Amazon EC2 实例上触发某些代码的执行,那么最好使用 Amazon EC2 Run Command而不是尝试自动化 SSH 连接。

Amazon EC2 Run Command provides a simple way of automating common administrative tasks like executing Shell scripts and commands on Linux, running PowerShell commands on Windows, installing software or patches, and more. Amazon EC2 Run Command allows you to execute these commands across multiple instances and provides visibility into the results, making it easy to manage configuration change across fleets of instances.

您的实例需要安装 Amazon EC2 Systems Manager (SSM) 代理。请参阅:Installing SSM Agent

然后您将在 Amazon EC2 实例上运行命令 from the management console , AWS Command-Line Interface (CLI)或通过 API 调用。

send 命令不接受标签作为输入。但是,您可以先执行 list-instances 命令以按标签搜索实例,然后将 instance-ids 传递给 send 命令。请参阅:AWS CLI send-command

关于bash - 通过堡垒服务器在私有(private) IP 上使用 boto SSH 到 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44090141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com