gcloud
Google Cloud cli()を使用してGoogleコンピューティングインスタンスに接続するために私のSSH設定を使用したいと思います。 (これはうまくいく解決策がありますが、私の問題のこの部分を解決しなかった他の質問に対する後続の質問です。)
必要な機能はssh <instance-name>.gc
gcloudインスタンスに接続することです。
gcloud インスタンスに接続するには:
/home/me/google-cloud-sdk/bin/gcloud compute --project "myproject" ssh --zone "myzone" me@<instance-name>
だから私は.ssh/configにエントリを追加しました。
Host *.gc
ProxyCommand /home/me/google-cloud-sdk/bin/gcloud compute --project "myproject" ssh --zone "myzone" me@$(basename %h .gc)
その後、実行して以下をssh <instance-name>.gc
取得します。
# ssh <instance-name>.gc
Pseudo-terminal will not be allocated because stdin is not a terminal.
-bash: line 1: $'SSH-2.0-OpenSSH_8.0\r': command not found
接続されているようでしたが、入力するように求められず、Ctrl-Cを押して終了しました。
同様の動作を達成するためにエイリアスを作成できますが、SSH設定の他の項目と一緒にジャンプボックスとして使用できるようにしたいと思います。
デバッグ
たぶん私はそれを間違って使っているかもしれません。設定ファイルでコマンドを置き換えると、ProxyCommand
同じ動作が表示されます。それでは、目標を達成するのに役立つ代替構成はありますか?gcloud
ssh me@<instace-ip>
gcloud
ssh
後で使用すると、変更なしで疑似端末割り当てを強制するために--
を追加してみました。-- -t
答え1
私は動作するいくつかの構文を思いついた。おそらく整理することができますが、動作します。
Host *.gc
User me
ProxyCommand gcloud compute --project "myproject" ssh --zone "myzone" me@$(basename %h .gc) --command="nc 0.0.0.0 22"