我想使用Python 3.6访问Google Cloud Compute Engine VM,并且需要执行正常的CLI操作,例如远程计算机。
我能够通过gcloud命令登录到VM实例,该命令是在VM实例页面上手动生成的,并且我能够使用googleapiclient.discovery Python模块执行一些操作,例如列表实例,创建实例和删除实例。但是,我无法登录到VM实例并进行访问,例如就像通过Python的远程计算机一样。
请引导我使用正确的API来访问VM实例。
答案 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()