我可以访问GCP中只有内部IP的私有VM,然后经过一些研究,我了解到在VS Code中SSH进入远程开发的唯一方法是通过IAP隧道。
因此,我通过在CLI中运行以下gcloud命令生成ssh密钥。
gcloud compute ssh vm-instance-name -zone us-central1-a --tunnel-through-iap --dry-run
在此之后,我从上面的命令中得到以下响应:
"C:UsersusernameAppDataLocalGoogleCloud-SDKgoogle-cloud-sdkbinsdkputty.exe" -t -i C:Usersusername.sshgoogle_compute_engine.ppk -proxycmd ""C:\Users\username\AppData\Local\Google\Cloud-SDK\google-cloud-sdk\bin\..\platform\bundledpython\python.exe" "-S" "C:\Users\username\AppData\Local\Google\Cloud-SDK\google-cloud-sdk\lib\gcloud.py" compute start-iap-tunnel ssh-remote-vm %port --listen-on-stdin --project=project-name --zone=us-central1-a --verbosity=warning" rajamannar_k@compute.1363457738033948822
我应该如何配置/。ssh/configure连接到虚拟机进行远程开发,或者应该在" remote - ssh: add-new-host"中传入什么命令?选择吗?
下面是/。ssh/configure I have setup.
Host compute.1363457738033948822
HostName compute.1363457738033948822
IdentityFile C:Usersrajamannar_k.sshgoogle_compute_engine
CheckHostIP no
UserKnownHostsFile C:Usersrajamannar_k.sshgoogle_compute_known_hosts
HostKeyAlias compute.1363457738033948822
IdentitiesOnly yes
StrictHostKeyChecking no
ProxyCommand "C:\Users\rajamannar_k\AppData\Local\Google\Cloud-SDK\google-cloud-sdk\bin\..\platform\bundledpython\python.exe" "-S" "C:\Users\rajamannar_k\AppData\Local\Google\Cloud-SDK\google-cloud-sdk\lib\gcloud.py" compute start-iap-tunnel ssh-remote-vm %port --listen-on-stdin --project=project-name --zone=us-central1-a --verbosity=warning
ProxyUseFdpass no
User rajamannar_k
供参考:我用的是windows电脑。
对于那些试图使用SSH连接到GCP-VM(没有外部IP)的用户,请按照以下步骤在VS-Code中使用SSH进行远程开发。
windows:
- 运行dry run命令生成RSA密钥,这可以在
C:Users<your-username>.ssh
中找到。我们稍后将在编辑配置文件时使用响应值,因此请将其保存在手边。
gcloud compute ssh vm-instance-name -zone vm-zone-location --tunnel-through-iap --dry-run
- 运行上述命令后,您将看到一个文件google_compute_engine。Pub在上述目录下。在编辑器中打开该文件,复制内容并将其粘贴到GCP VM的SSH部分。
- 在粘贴时从RSA中删除被击打的单词并保存它
LENOVO-PCyour-username@Lenovo-PC。这将在您的密钥的末尾找到。 - 在.ssh目录下创建或编辑配置文件,这些值来自
--dry-run
命令。
Host compute.machine-no
HostName compute.machine-no
ForwardAgent yes
IdentityFile C:/Users/<your-username>/.ssh/google_compute_engine
ProxyCommand "python" "-S" "C:/Users/your-username/AppData/Local/Google/Cloud SDK/google-cloud-sdk/lib/gcloud.py" compute start-iap-tunnel vm-instance-name 22 --listen-on-stdin --project=project-name --zone=vm-zone-location --verbosity=warning
User your-username