Halaman ini menjelaskan cara menggunakan CLI gcloud untuk terhubung ke
workstation dari komputer lokal menggunakan SSH (atau protokol TCP lainnya).
Cloud Workstations menggunakan tunnel untuk meneruskan traffic TCP antara port di mesin lokal Anda dan port di workstation Anda tanpa mengekspos workstation Anda secara terbuka ke internet. Koneksi diautentikasi menggunakan
kredensial dari CLI gcloud dan diizinkan sesuai dengan
kebijakan IAM workstation target.
Setelah tunnel TCP dibuat antara port lokal dan workstation, Anda dapat menggunakannya untuk meneruskan traffic dari klien SSH, curl, atau aplikasi lain yang menggunakan TCP.
Untuk mempermudah, Cloud Workstations menyediakan perintah
gcloud workstations ssh, yang membuat tunnel TCP dan menjalankan klien SSH dengan
satu perintah CLI gcloud.
Untuk semua kasus penggunaan lainnya, gunakan perintah
gcloud workstations start-tcp-tunnel
untuk membuat tunnel TCP dan menjalankan aplikasi yang akan menggunakan
tunnel (misalnya, curl) di terminal terpisah.
Sebelum memulai
Jika Anda belum memiliki workstation untuk terhubung, siapkan workstation.
Instal Google Cloud CLI, lalu login ke
gcloudCLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:gcloud initPastikan Anda memiliki peran IAM Cloud Workstations User di workstation yang akan Anda hubungkan.
Menghubungkan ke workstation menggunakan SSH
Untuk membuat koneksi SSH yang aman ke workstation Anda, gunakan perintah
gcloud workstations ssh, yang memulai tunnel TCP dan menjalankan klien SSH.
Jalankan perintah berikut di jendela terminal lokal:
gcloud workstations ssh \
--project=PROJECT_ID \
--region=REGION \
--cluster=CLUSTER_NAME \
--config=CONFIG_NAME \
--port=WORKSTATION_PORT \
--local-host-port=localhost:LOCAL_PORT \
WORKSTATION_NAME
Ganti nilai berikut:
PROJECT_ID: Google Cloud project ID untuk project yang berisi workstation. Jika dihilangkan, project saat ini akan digunakan.REGION: region tempat cluster workstation berada—misalnya,us-central1.CLUSTER_NAME: nama cluster workstation yang berisi workstation.CONFIG_NAME: nama konfigurasi workstation yang berisi workstation ini.WORKSTATION_PORT(Opsional): port di workstation yang akan menerima traffic. Jika tidak ditentukan, traffic akan dikirim ke port22. Semua image Cloud Workstations yang telah dikonfigurasi sebelumnya menyertakan server SSH yang berjalan di port22workstation.LOCAL_PORT(Opsional): port localhost dari mana traffic akan dikirim. Nomor port yang valid adalah1024hingga65535. Jika Anda menghilangkan flag--local-host-portatau menentukan port0, port yang tidak digunakan akan dipilih secara otomatis.WORKSTATION_NAME: nama workstation.
Konfigurasi SSH dan file .ssh/config
Saat Anda menggunakan gcloud workstations ssh, perintah akan merutekan koneksi Anda
melalui localhost. Akibatnya, workstation tidak otomatis menerapkan entri Host
dari file ~/.ssh/config Anda yang menggunakan nama workstation.
Untuk menerapkan konfigurasi SSH kustom, pilih salah satu opsi berikut:
Opsi 1: Teruskan tanda pada command line
Anda dapat meneruskan opsi SSH langsung ke klien SSH pokok dengan menambahkannya setelah tanda hubung ganda (--):
gcloud workstations ssh \
--project=PROJECT_ID \
--region=REGION \
--cluster=CLUSTER_NAME \
--config=CONFIG_NAME \
WORKSTATION_NAME \
-- -o SSH_OPTION=VALUE
Opsi 2: Menggunakan tunnel TCP persisten dan .ssh/config
Jika Anda lebih suka menggunakan file ~/.ssh/config:
Mulai tunnel TCP persisten di jendela terminal terpisah dan tentukan port lokal:
gcloud workstations start-tcp-tunnel \ --project=PROJECT_ID \ --region=REGION \ --cluster=CLUSTER_NAME \ --config=CONFIG_NAME \ --local-host-port=localhost:LOCAL_PORT \ WORKSTATION_NAME \ 22Tambahkan blok konfigurasi ke file
~/.ssh/configdi komputer lokal Anda:Host WORKSTATION_NAME HostName localhost Port LOCAL_PORT User user # Disable host key checking for ephemeral cloud workstations StrictHostKeyChecking no UserKnownHostsFile /dev/null # Add any other SSH options hereHubungkan ke workstation Anda menggunakan SSH standar:
ssh WORKSTATION_NAME
Menggunakan tunnel TCP untuk meneruskan traffic TCP arbitrer ke workstation Anda
Untuk terhubung ke workstation menggunakan aplikasi TCP selain ssh, gunakan perintah
gcloud workstations start-tcp-tunnel:
Jalankan perintah CLI
gcloudberikut untuk membuat tunnel TCP yang diautentikasi.Untuk menyalin perintah ke buffer salin-tempel, klik Salin contoh kode, lalu tempel perintah ke jendela terminal lokal:
gcloud workstations start-tcp-tunnel \ --project=PROJECT_ID \ --region=REGION \ --cluster=CLUSTER_NAME \ --config=CONFIG_NAME \ --local-host-port=localhost:LOCAL_PORT \ WORKSTATION_NAME \ WORKSTATION_PORTGanti nilai berikut:
PROJECT_ID: Google Cloud project ID untuk project yang berisi workstation. Jika dihilangkan, project saat ini akan digunakan.REGION: region tempat cluster workstation berada—misalnya,us-central1.CLUSTER_NAME: nama cluster workstation yang berisi workstation.CONFIG_NAME: nama konfigurasi workstation yang berisi workstation ini.LOCAL_PORT(Opsional): port localhost tempat traffic akan dikirim. Nomor port yang valid adalah1024hingga65535. Jika Anda menghilangkan tanda--local-host-portatau menentukan port0, port yang tidak digunakan akan dipilih secara otomatis.WORKSTATION_NAME: nama workstation.WORKSTATION_PORT: port workstation tempat traffic harus dikirim. Image Cloud Workstations yang telah dikonfigurasi sebelumnya mencakup server SSH yang berjalan di port workstation22.
Perintah
gcloudCLI melakukan uji konektivitas dengan workstation, membuka tunnel, lalu menampilkan nomor port:Listening on port [LOCAL_PORT].Semua traffic yang dikirim ke
localhost:LOCAL_PORTditeruskan ke workstation. Port hanya dapat diakses oleh aplikasi yang berjalan di komputer lokal Anda.Biarkan CLI
gcloudberjalan dan buka terminal lain untuk menjalankan aplikasi yang terhubung ke workstation Anda.Misalnya, jika Anda menjalankan server di workstation yang melayani port WORKSTATION_PORT, dan pada langkah sebelumnya Anda membuat tunnel TCP yang meneruskan traffic antara port lokal LOCAL_PORT dan port workstation WORKSTATION_PORT, Anda dapat menjalankan
curldi mesin lokal untuk terhubung ke server di workstation:curl localhost:LOCAL_PORT Hello, world!Setelah selesai, kembali ke terminal tempat Anda memulai tunnel TCP dan hentikan CLI
gclouddengan menekan Control+C.
Menggunakan server SSH di port yang berbeda
Image container kustom
juga dapat menggunakan server SSH di port mana pun. Untuk mendukung koneksi dari tunnel CLI gcloud, Anda harus mengonfigurasi server SSH kustom agar mengizinkan autentikasi sandi dan menetapkan pengguna target dengan sandi kosong.
Cloud Workstations menggunakan
Cloud IAM
untuk membantu memastikan bahwa hanya traffic yang sah yang dikirim ke server SSH.
Membuat sesi SSH tetap persisten
Jika koneksi jaringan Anda terputus, sesi SSH Anda akan terputus. Agar proses Anda tetap berjalan saat koneksi terputus dan terhubung kembali ke sesi Anda nanti, gunakan alat seperti tmux.
Untuk menginstal tmux di workstation Anda:
Instal
tmuxsecara manual di sesi Anda saat ini untuk segera menggunakannya:sudo apt update sudo apt install -y tmuxKonfigurasi workstation Anda untuk menginstal
tmuxsaat startup. Buat atau tambahkan ke file/home/user/.workstation/customize_environmentuntuk menyertakan perintah berikut:#!/bin/bash sudo apt update sudo apt install -y tmuxUntuk mengetahui informasi selengkapnya, lihat Menyesuaikan image workstation yang ada tanpa memperluasnya.
Buat file dapat dieksekusi agar berjalan saat workstation dimulai:
chmod +x /home/user/.workstation/customize_environment
Setelah tmux diinstal:
Hubungkan ke workstation Anda:
gcloud workstations ssh \ --project=PROJECT_ID \ --region=REGION \ --cluster=CLUSTER_NAME \ --config=CONFIG_NAME \ WORKSTATION_NAMEMulai sesi tmux baru dari workstation Anda:
tmuxJika koneksi Anda terputus, hubungkan kembali dan lampirkan ke sesi Anda dengan menjalankan perintah berikut dari terminal lokal Anda:
gcloud workstations ssh \ --project=PROJECT_ID \ --region=REGION \ --cluster=CLUSTER_NAME \ --config=CONFIG_NAME \ WORKSTATION_NAME \ -- -t tmux attach
Langkah berikutnya
- Menetapkan variabel lingkungan container dalam sesi SSH untuk image container kustom
- Mengaktifkan penerusan X11 untuk image container kustom