如何通过Python 3.6连接和访问Google Cloud Compute Engine VM

时间:2019-03-28 09:15:09

标签: python python-3.x ssh python-3.6 gcloud

我想使用Python 3.6访问Google Cloud Compute Engine VM,并且需要执行正常的CLI操作,例如远程计算机。

我能够通过gcloud命令登录到VM实例,该命令是在VM实例页面上手动生成的,并且我能够使用googleapiclient.discovery Python模块执行一些操作,例如列表实例,创建实例和删除实例。但是,我无法登录到VM实例并进行访问,例如就像通过Python的远程计算机一样。

请引导我使用正确的API来访问VM实例。

1 个答案:

答案 0 :(得分:0)

我将使用Python第三方库paramiko

但是首先,您需要在GCP端进行一些简单的设置,只需粘贴要连接的计算机的公共ssh密钥,这里是documentation,然后获取Google Compute的外部IP地址您要连接的引擎(GCE)实例。

然后:

import paramiko

#edit the following line please
username, hostname = "YOUR_USERNAME@EXTERNAL_IP_ADDRESS".split("@") 

client = paramiko.SSHClient()

#edit the following line also, with the path to the private ssh key (correspondent to the public one you've registered with your GCE instance)
key_filename=""
#on cloud shell would be something like /home/YOUR_USERNAME/.ssh/google_compute_engine

c = client.connect(username=username, hostname=hostname, key_filename=key_filename)

stdin, stdout, stderr = client.exec_command("cat /etc/os-release") #assuming is linux

print(stdout.read().decode())

client.close()