SSH 設定では、gcloud cli コマンドを使用して Google クラウド コンピューティング インスタンスとのセッションを開始します。

SSH 設定では、gcloud cli コマンドを使用して Google クラウド コンピューティング インスタンスとのセッションを開始します。

gcloudGoogle Cloud cli()を使用してGoogleコンピューティングインスタンスに接続するために私のSSH設定を使用したいと思います。 (これはうまくいく解決策がありますが、私の問題のこの部分を解決しなかった他の質問に対する後続の質問です。)

必要な機能はssh <instance-name>.gcgcloudインスタンスに接続することです。

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同じ動作が表示されます。それでは、目標を達成するのに役立つ代替構成はありますか?gcloudssh me@<instace-ip>

gcloudssh後で使用すると、変更なしで疑似端末割り当てを強制するために--を追加してみました。-- -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"

おすすめ記事