Koneksi SSH langsung merupakan metode yang direkomendasikan untuk menghubungkan ke instans DSW dari terminal lokal atau VS Code karena lebih cepat dan stabil dibandingkan koneksi ProxyClient.
Batasan
-
Tipe instans yang tidak didukung
Pada kelompok sumber daya publik, tipe instans yang namanya diawali dengan
ecs.ebmtidak mendukung koneksi SSH langsung. -
Batasan koneksi jaringan publik
Saat Anda menghubungkan ke instans DSW melalui jaringan publik, PAI secara otomatis mengonfigurasi aturan DNAT pada setiap Gateway NAT Internet. Tidak diperlukan konfigurasi manual.
Setiap Gateway NAT Internet mendukung maksimal 100 aturan DNAT. Oleh karena itu, maksimal 100 instans DSW dapat terhubung secara bersamaan. Untuk informasi selengkapnya mengenai kuota, lihat Kuota.
Tagihan
Akses jaringan publik ke instans DSW memerlukan Gateway NAT, Alamat IP Elastis (EIP), atau Network Load Balancer (NLB). Gateway NAT, EIP, dan NLB ditagih secara terpisah. Biaya terus berjalan bahkan setelah instans DSW dihentikan. Hapus sumber daya ini segera setelah tidak lagi diperlukan.
Langkah-langkah implementasi
Langkah 1: Aktifkan resolusi DNS privat
Instans DSW dideploy di virtual private cloud (VPC), dan koneksi SSH bergantung pada DNS privat untuk menyelesaikan alamat IP instans. Aktifkan resolusi DNS privat sebelum menghubungkan ke instans DSW. Untuk informasi selengkapnya, lihat Aktifkan DNS Privat.
Langkah 2: Hasilkan pasangan kunci SSH
Jalankan perintah berikut pada client Anda untuk menghasilkan pasangan kunci SSH. Saat diminta, tetapkan passphrase untuk pasangan kunci tersebut. Jika Anda berencana menggunakan remote_ikernel untuk menghubungkan ke instans (lihat contoh skenario dalam topik ini), biarkan passphrase kosong dan tekan Enter.
Hasilkan pasangan kunci di path default (direkomendasikan)
Jalankan perintah berikut:
ssh-keygen
Setelah perintah dijalankan, kunci publik (id_rsa.pub) dan kunci privat (id_rsa) dihasilkan di direktori berikut. Jika pasangan kunci SSH sudah ada, file yang ada akan ditimpa. Path default bervariasi tergantung sistem operasi:
Windows: direktori
C:\Users\<username>\.ssh.Linux: direktori
/root/.sshuntuk pengguna root, atau direktori/home/<username>/.sshuntuk pengguna standar.macOS: direktori
/Users/<username>/.ssh.
Hasilkan pasangan kunci di direktori kustom
Jalankan perintah berikut:
ssh-keygen -f /your/path/example_rsa # Menghasilkan example_rsa.pub dan example_rsa di /your/path
Langkah 3: Konfigurasikan pengaturan SSH untuk instans DSW
Saat Anda Membuat instans DSW, konfigurasikan parameter jaringan berikut.
Untuk instans yang sudah ada, klik Change Settings untuk mengubah parameter, lalu klik OK untuk menerapkan perubahan.
|
Parameter |
Deskripsi |
|
VPC Settings, vSwitch, Security Group |
VPC Settings, vSwitch, dan Security Group diperlukan untuk membuat instans DSW di kelompok sumber daya publik. Anda dapat membuat sumber daya ini dengan mengikuti langkah-langkah berikut. Untuk informasi selengkapnya, lihat Buat VPC dan vSwitch dan Kelola security group. VPC dan security group harus berada di wilayah yang sama dengan instans DSW. Penting
Pastikan aturan masuk security group mengizinkan traffic pada port TCP 22 dari alamat IP client Anda. |
|
Enable SSH |
Nyalakan sakelar, lalu salin konten file kunci publik |
|
Service Access and Port Configuration |
Setelah Anda menyalakan sakelar Enable SSH, layanan bernama SSH muncul.
|
|
Public Network Access |
Konfigurasikan parameter ini jika diperlukan akses jaringan publik. Pilih DNAT + EIP.
Untuk membuat Gateway NAT dan EIP, ikuti langkah-langkah berikut: Anda juga dapat menggunakan NLB sebagai gantinya. Saat membuat instans NLB, atur Instance Network Type ke Internet dan pilih VPC yang sama dengan instans DSW saat ini. Untuk informasi selengkapnya, lihat Memulai NLB untuk load balancing IPv4. Catatan
Jika beberapa instans DSW berbagi aturan DNAT dan EIP (atau NLB) yang sama, gunakan port akses publik yang berbeda. |
Langkah 4: Instal server SSH
Image dasar resmi dan custom image yang diturunkan darinya telah memiliki server SSH yang diinstal dan dijalankan secara default.
Di terminal instans DSW, jalankan service ssh status untuk memeriksa status layanan, atau jalankan pgrep sshd untuk memeriksa apakah proses sshd ada. Jika layanan SSH tidak berjalan, jalankan perintah berikut untuk menginstal server SSH.
Status Ready SSH di konsol hanya menunjukkan bahwa konfigurasi telah selesai. Ini tidak berarti proses sshd sedang berjalan. Jalankan pgrep sshd untuk memastikan.
sudo apt-get update
sudo apt-get install openssh-server
sudo service ssh start
Jika perintah sudo tidak ditemukan, jalankan apt-get install sudo terlebih dahulu, lalu ulangi perintah di atas.
Pada sistem CentOS atau Red Hat Enterprise Linux (RHEL), jalankan yum install openssh-server atau dnf install openssh-server.
Langkah 5: Hubungkan ke instans DSW
-
Lihat metode akses.
Pada halaman DSW, klik nama instans untuk membuka halaman detail instans. Di tab Instance Settings, temukan bagian Network Settings dan lihat metode akses publik dan metode akses VPC.
CatatanJika akses publik tidak dipilih dalam konfigurasi SSH, hanya metode akses VPC yang ditampilkan di sini.
-
Hubungkan ke instans DSW.
Hubungkan menggunakan SSH
-
Akses jaringan publik
Dari command line lokal atau terminal lain, hubungkan ke instans DSW menggunakan metode akses publik dari Langkah 1.
ssh root@xx.xx.xx.xx -p 1024 # Jika kunci privat tidak berada di path default, tentukan lokasi kunci ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024PentingPada perintah di atas, parameter
-pmenentukan port akses publik yang dikonfigurasi untuk SSH. Dalam contoh ini, port tersebut adalah 1024. -
Akses VPC
Dari terminal lain di VPC, seperti instans ECS, hubungkan ke instans DSW menggunakan metode akses VPC dari Langkah 1.
ssh root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22 # Jika kunci privat tidak berada di path default, tentukan lokasi kunci ssh -i /your/path/example_rsa root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22
Hubungkan dari VS Code lokal
-
Buka VS Code, lalu instal ekstensi Remote - SSH dari tampilan Extensions.
Setelah instalasi selesai, buka Command Palette, masukkan
remote-ssh, lalu pilih perintah Remote-SSH: Connect to Host... untuk memulai koneksi jarak jauh. Klik
di pojok kiri bawah untuk membuka kotak dialog Remote-SSH, lalu pilih Connect to Host... > Add New SSH Host....-
Masukkan perintah koneksi SSH.
ssh root@xx.xx.xx.xx -p 1024 # Jika kunci privat tidak berada di path default, tentukan lokasi kunci ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024 Klik Open di pojok kanan bawah. Status koneksi akan muncul di pojok kiri bawah.
-
Buka direktori di instans DSW untuk memulai pengembangan dan debugging jarak jauh.
Klik ikon Explorer di activity bar sebelah kiri, klik tombol Open Folder, masukkan
/mnt/workspacedi kotak dialog Open File or Folder, lalu klik OK untuk membuka direktori tersebut. -
Untuk menjalankan kode, hubungkan ke kernel di instans DSW.
Pada daftar drop-down Select a Jupyter Kernel di bagian atas VS Code, pilih kernel Python 3 (ipykernel) yang direkomendasikan.
-
Skenario: Jalankan notebook lokal di instans DSW
Prasyarat
Selesaikan Langkah 1 hingga 4 dalam topik ini untuk mengonfigurasi koneksi SSH langsung. Saat menghasilkan pasangan kunci SSH, biarkan passphrase kosong.
Prosedur
-
Dari terminal lokal Anda, instal remote_ikernel dan tambahkan kernel jarak jauh.
pip install remote_ikernelremote_ikernel manage --add \ --kernel_cmd="ipython kernel -f {connection_file}" \ # Tidak perlu perubahan --name="Remote Python" \ --interface=ssh \ --host=root@*.*.*.*:1024 # Ganti dengan alamat host Anda. Jika kunci privat tidak berada di path default, gunakan --host="-i /your/path/example_rsa root@*.*.*.*:1024"Jika pesan berikut muncul, kernel jarak jauh telah ditambahkan.
Added kernel ['rik_ssh_root_121_40_*_*_1024_remotepython']: SSH root@121.40.*.*:1024 Remote Python.Untuk melihat konfigurasi kernel jarak jauh, jalankan perintah berikut:
remote_ikernel manage --show Di VS Code pada mesin lokal Anda, buka file notebook dan ganti kernel di pojok kanan atas. Cari Remote Python dan pilih kernel tersebut.
FAQ
T: Apa perbedaan antara koneksi SSH langsung dan proxy ProxyClient?
T: Bagaimana cara troubleshooting kegagalan koneksi SSH, timeout, atau penolakan kunci saat menghubungkan ke instans DSW?
Atasi masalah berdasarkan kategori:
-
Kegagalan koneksi jaringan publik
Pastikan aturan masuk security group mengizinkan traffic pada port TCP 22 dari alamat IP client Anda.
Jika terdapat beberapa Gateway NAT Internet di VPC, lihat Deploy Gateway NAT single-AZ untuk ketersediaan tinggi untuk memeriksa hubungan routing antara Gateway NAT, vSwitch, dan tabel rute.
Jika hanya ada satu Gateway NAT, gunakan troubleshooting self-service untuk menganalisis konektivitas jaringan.
-
Kegagalan koneksi VPC
Pastikan client dan instans DSW berada di VPC yang sama. Jalankan perintah
diguntuk menguji resolusi DNS nama domain VPC instans DSW. Jika responsNXDOMAINmuncul, resolusi DNS tidak berfungsi. Periksa pengaturan DNS privat VPC.Jika Anda menggunakan custom image, pastikan layanan SSH telah diinstal dan dijalankan. Untuk informasi selengkapnya, lihat Langkah 4: Instal server SSH.
Pastikan aturan masuk security group mengizinkan traffic pada port TCP 22.
Jalankan
ssh -v root@IP -p portuntuk mendapatkan informasi koneksi detail. ResponsConnection timed outmenunjukkan adanya masalah pada security group atau konektivitas jaringan. ResponsConnection refusedmenunjukkan port tidak sedang mendengarkan (sshd tidak berjalan). ResponsConnection resetmenunjukkan adanya masalah autentikasi.
-
Key Rejection (Permission Denied)
Pastikan kunci publik (seluruh isi file
id_rsa.pub) telah ditambahkan ke konfigurasi SSH instans DSW.Pastikan kunci privat yang digunakan dalam perintah SSH sesuai dengan kunci publik. Jika kunci privat tidak berada di path default (
~/.ssh/id_rsa), tentukan lokasinya menggunakan parameter-i.Periksa apakah izin file
~/.ssh/authorized_keysadalah 600. Jalankanls -l ~/.ssh/authorized_keysuntuk memverifikasi. Izin yang salah menyebabkan SSH menolak kunci publik.
-
Kegagalan koneksi VS Code
Pastikan ekstensi
Remote - SSHtelah diinstal dan Anda memasukkan perintah SSH lengkap, sepertissh root@xx.xx.xx.xx -p 1024.Uji koneksi dengan menjalankan perintah SSH di terminal lokal. Setelah koneksi dasar berhasil, periksa konfigurasi VS Code.
Jika muncul error mengenai pipe yang tidak ada, restart VS Code atau instal ulang ekstensi Remote - SSH.
T: Bisakah saya menggunakan IDE lokal seperti PyCharm untuk menghubungkan secara jarak jauh ke instans DSW?
Semua fitur berbasis protokol SSH didukung. Saat Anda menghubungkan menggunakan PyCharm, PyCharm secara otomatis mengunduh dan menginstal komponen sisi server di instans DSW. Oleh karena itu, instans DSW harus memiliki akses jaringan publik.
T: Bagaimana cara melihat alamat IP publik suatu instans?
Jika Gateway NAT Internet telah dikonfigurasi, lihat alamat IP publik dengan mengikuti langkah-langkah berikut:
T: Apakah instans DSW mendukung beberapa pengguna dengan login SSH terpisah?
Secara default, instans DSW hanya menyediakan pengguna root untuk login SSH. DSW tidak mendukung pembuatan beberapa pengguna independen dengan login SSH terisolasi. Anda dapat membuat pengguna tambahan secara manual di dalam instans, tetapi praktik ini tidak didukung secara resmi.
T: Mengapa saya tidak dapat melihat file workspace saat menghubungkan ke instans DSW dari IDE lokal seperti VS Code atau PyCharm?
Setelah login SSH, direktori default mungkin merupakan direktori home pengguna root (/root). File workspace biasanya disimpan di direktori pada disk data yang dimount, seperti /mnt/workspace. Di VS Code, pilih File > Open Folder untuk membuka direktori kerja yang benar.
Referensi
Jika metode ini tidak sesuai dengan skenario Anda atau Anda tidak ingin mengonfigurasi komponen jaringan tambahan, gunakan ProxyClient untuk menghubungkan secara jarak jauh.
Konfigurasikan nama VPC, blok CIDR IPv4, dan informasi vSwitch. Biarkan parameter lain pada nilai default, lalu klik OK untuk membuat VPC dan vSwitch.



