Menyambungkan ke HDInsight (Apache Hadoop) menggunakan SSH

Pelajari cara menggunakan Secure Shell (SSH) untuk terhubung dengan aman ke Apache Hadoop di Azure HDInsight. Untuk informasi tentang menyambungkan melalui jaringan virtual, lihat Arsitektur jaringan virtual Azure HDInsight. Lihat juga, Rencanakan penyebaran jaringan virtual untuk kluster Azure HDInsight.

Tabel berikut berisi alamat dan informasi port yang diperlukan saat menyambungkan ke HDInsight menggunakan klien SSH:

Alamat Port Menghubungkan ke...
<clustername>-ssh.azurehdinsight.net 22 Headnode primer
<clustername>-ssh.azurehdinsight.net 23 Headnode sekunder
<edgenodename>.<clustername>-ssh.azurehdinsight.net 22 simpul tepi (jenis kluster lainnya, jika ada simpul tepi)

Ganti <clustername> dengan nama kluster Anda. Ganti <edgenodename> dengan nama node tepi.

Jika kluster Anda berisi simpul tepi, kami sarankan Anda selalu terhubung ke simpul tepi menggunakan SSH. Simpul head menjadi host layanan yang sangat penting bagi kesehatan Hadoop. Simpul tepi hanya menjalankan apa yang Anda letakkan di atasnya. Untuk informasi selengkapnya tentang menggunakan simpul tepi, lihat Menggunakan simpul tepi di HDInsight.

Tip

Ketika Anda pertama kali tersambung ke HDInsight, klien SSH Anda dapat menampilkan peringatan bahwa keaslian host tidak dapat dibuktikan. Ketika diminta, pilih 'ya' untuk menambahkan host ke daftar server tepercaya klien SSH Anda.

Jika sebelumnya Anda telah terhubung ke server dengan nama yang sama, Anda mungkin menerima peringatan bahwa kunci host yang disimpan tidak cocok dengan kunci host server. Lihat dokumentasi untuk klien SSH Anda tentang cara menghapus entri yang ada untuk nama server.

Klien SSH

Sistem Linux, Unix, dan macOS menyediakan perintah ssh dan scp. Klien ssh biasanya digunakan untuk membuat sesi baris perintah jarak jauh dengan sistem berbasis Linux atau Unix. Klien scp digunakan untuk menyalin file dengan aman antara klien Anda dan sistem jarak jauh.

Microsoft Windows tidak memasang klien SSH secara default. Klien ssh dan scp tersedia untuk Windows melalui paket berikut:

Ada juga beberapa klien SSH grafis, seperti PuTTY dan MobaXterm. Meskipun klien ini dapat digunakan untuk terhubung ke HDInsight, proses menghubungkan berbeda dari menggunakan utilitas ssh. Untuk informasi selengkapnya, lihat dokumentasi klien grafis yang Anda gunakan.

Autentikasi: Kunci SSH

Kunci SSH menggunakan kriptografi kunci publik untuk mengautentikasi sesi SSH. Kunci SSH lebih aman daripada kata sandi, dan menyediakan cara mudah untuk mengamankan akses ke kluster Hadoop Anda.

Jika akun SSH Anda diamankan menggunakan kunci, klien harus memberikan kunci privat yang cocok saat Anda tersambung:

  • Sebagian besar klien dapat dikonfigurasi untuk menggunakan kunci default. Misalnya, ssh klien mencari kunci privat di ~/.ssh/id_rsa pada lingkungan Linux dan Unix.

  • Anda dapat menentukan jalur ke kunci privat. Dengan ssh klien, -i parameter digunakan untuk menentukan jalur ke kunci privat. Contohnya,ssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net.

  • Jika Anda memiliki beberapa kunci privat untuk digunakan dengan server yang berbeda, pertimbangkan untuk menggunakan utilitas seperti ssh-agent (https://en.wikipedia.org/wiki/Ssh-agent). Utilitas ssh-agent tersebut dapat digunakan untuk secara otomatis memilih kunci yang akan digunakan saat membuat sesi SSH.

Penting

Jika Anda mengamankan kunci privat dengan frase sandi, Anda harus memasukkan frase sandi saat menggunakan kunci. Utilitas seperti ssh-agent dapat menyimpan kata sandi untuk kenyamanan Anda.

Membuat pasangan kunci SSH

Gunakan perintah ssh-keygen untuk membuat file kunci publik dan privat. Perintah berikut menghasilkan pasangan kunci RSA 2048-bit yang dapat digunakan dengan HDInsight:

ssh-keygen -t rsa -b 2048

Anda dimintai informasi selama proses pembuatan kunci. Misalnya, di mana kunci disimpan atau apakah akan menggunakan frase sandi. Setelah proses selesai, dua file dibuat; kunci publik dan kunci privat.

  • Kunci publik digunakan untuk membuat kluster HDInsight. Kunci publik memiliki ekstensi .pub.

  • Kunci privat digunakan untuk mengautentikasi klien Anda ke kluster HDInsight.

Penting

Anda dapat mengamankan kunci Anda menggunakan frase sandi. Frase sandi secara efektif merupakan kata sandi pada kunci privat Anda. Bahkan jika seseorang mendapatkan kunci privat Anda, mereka harus memiliki frase sandi untuk menggunakan kunci tersebut.

Buat HDInsight menggunakan kunci publik

Metode Pembuatan Cara menggunakan kunci publik
Portal Azure Hapus centang Gunakan kata sandi masuk kluster untuk SSH, lalu pilih Kunci Publik sebagai tipe autentikasi SSH. Terakhir, pilih file kunci publik atau tempelkan konten teks file di bidang kunci publik SSH.
SSH public key dialog in HDInsight cluster creation.
Azure PowerShell Gunakan -SshPublicKey parameter New-AzHdinsightCluster cmdlet dan berikan isi kunci publik sebagai untai (karakter).
Azure CLI Gunakan --sshPublicKey parameter perintah az hdinsight create dan berikan konten kunci publik sebagai untai (karakter).
Templat Azure Resource Manager Untuk contoh penggunaan kunci SSH dengan templat, lihat Sebarkan HDInsight di Linux dengan kunci SSH. Elemen publicKeys dalam file azuredeploy.jspada digunakan untuk meneruskan kunci ke Azure saat membuat kluster.

Autentikasi: kata sandi

Akun SSH dapat diamankan menggunakan kata sandi. Saat Anda terhubung ke HDInsight menggunakan SSH, Anda akan diminta untuk memasukkan kata sandi.

Peringatan

Microsoft tidak merekomendasikan penggunaan autentikasi kata sandi untuk SSH. Kata sandi dapat ditebak dan rentan terhadap serangan brute force. Sebagai gantinya, kami sarankan Anda menggunakan kunci SSH untuk otentikasi.

Penting

Kata sandi akun SSH kedaluwarsa 70 hari setelah kluster HDInsight dibuat. Jika kata sandi kedaluwarsa, Anda dapat mengubahnya menggunakan informasi di Kelola dokumen HDInsight.

Buat HDInsight menggunakan kata sandi

Metode Pembuatan Cara menentukan Kata Sandi
Portal Azure Secara default, akun pengguna SSH memiliki kata sandi yang sama dengan akun login kluster. Untuk menggunakan kata sandi yang berbeda, hapus centang Gunakan kata sandi masuk kluster untuk SSH, lalu masukkan kata sandi di bidang kata sandi SSH.
SSH password dialog in HDInsight cluster creation.
Azure PowerShell Gunakan --SshCredential parameter New-AzHdinsightCluster cmdlet dan berikan PSCredential objek yang berisi nama dan kata sandi akun pengguna SSH.
Azure CLI Gunakan --ssh-password parameter perintah az hdinsight create dan berikan nilai kata sandi.
Templat Azure Resource Manager Untuk contoh penggunaan kata sandi dengan templat, lihat Sebarkan HDInsight di Linux dengan kata sandi SSH. Elemen linuxOperatingSystemProfile dalam file azuredeploy.jspada digunakan untuk meneruskan kata sandi dan nama akun SSH ke Azure ketika membuat kluster.

Ubah kata sandi SSH

Untuk informasi tentang mengubah kata sandi akun pengguna SSH, lihat bagian Ubah kata sandi pada dokumenKelola HDInsight.

HDInsight yang tergabung dengan domain autentikasi

Jika Anda menggunakan kluster HDInsight yang tergabung dengan domain, Anda harus menggunakan perintah kinit setelah terhubung dengan pengguna lokal SSH. Perintah ini meminta pengguna domain dan kata sandi, dan mengautentikasi sesi Anda dengan domain Microsoft Entra yang terkait dengan kluster.

Anda juga dapat mengaktifkan Autentikasi Kerberos pada setiap simpul yang bergabung dengan domain (misalnya, simpul head, simpul tepi) ke ssh menggunakan akun domain. Untuk melakukan ini, edit file konfigurasi sshd:

sudo vi /etc/ssh/sshd_config

batalkan komentar dan ubah KerberosAuthentication ke yes

sudo service sshd restart

Gunakan perintah klist untuk memverifikasi apakah autentikasi Kerberos berhasil.

Untuk informasi selengkapnya, lihat Konfigurasikan HDInsight yang digabung dengan domain.

Sambungkan ke simpul

Simpul head dan simpul tepi (jika ada) dapat diakses melalui internet pada port 22 dan 23.

  • Saat menyambungkan ke simpul head, gunakan port 22 untuk menyambungkan ke node kepala primer dan port 23 untuk terhubung ke simpul head sekunder. Nama domain yang sepenuhnya memenuhi syarat untuk digunakan adalah clustername-ssh.azurehdinsight.net, di mana clustername adalah nama kluster Anda.

    # Connect to primary head node
    # port not specified since 22 is the default
    ssh sshuser@clustername-ssh.azurehdinsight.net
    
    # Connect to secondary head node
    ssh -p 23 sshuser@clustername-ssh.azurehdinsight.net
    
  • Saat menyambungkan ke simpul tepi, gunakan port 22. Nama domain yang sepenuhnya memenuhi syarat adalah edgenodename.clustername-ssh.azurehdinsight.net, di mana edgenodename adalah nama yang Anda berikan saat membuat simpul tepi. clustername adalah nama kluster.

    # Connect to edge node
    ssh sshuser@edgnodename.clustername-ssh.azurehdinsight.net
    

Penting

Contoh sebelumnya mengasumsikan bahwa Anda menggunakan autentikasi kata sandi, atau autentikasi sertifikat tersebut terjadi secara otomatis. Jika Anda menggunakan pasangan kunci SSH untuk autentikasi, dan sertifikat tidak digunakan secara otomatis, gunakan parameter -i untuk menentukan kunci privat. Contohnya,ssh -i ~/.ssh/mykey sshuser@clustername-ssh.azurehdinsight.net.

Setelah terhubung, perintah berubah untuk menunjukkan nama pengguna SSH dan simpul yang terhubung dengan Anda. Misalnya, ketika terhubung ke simpul head primer sebagai sshuser, perintahnya adalah sshuser@<active-headnode-name>:~$.

Terhubung ke simpul pekerja dan Apache Zookeeper

Simpul pekerja dan simpul Zookeeper tidak dapat diakses langsung dari internet. Mereka dapat diakses dari simpul head kluster atau simpul tepi. Berikut ini adalah langkah-langkah umum untuk terhubung ke simpul lain:

  1. Gunakan SSH untuk menyambungkan ke simpul head atau tepi:

    ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
    
  2. Dari koneksi SSH ke simpul head atau tepi, gunakan ssh perintah untuk menyambungkan ke simpul pekerja di kluster:

    ssh sshuser@wn0-myhdi
    

    Untuk mengambil daftar nama simpul, lihat Kelola HDInsight dengan menggunakan dokumen Apache Ambari REST API.

Jika akun SSH diamankan menggunakan kata sandi, masukkan kata sandi saat menyambungkan.

Jika akun SSH diamankan menggunakan kunci SSH, pastikan penerusan SSH diaktifkan pada klien.

Catatan

Cara lain untuk secara langsung mengakses semua simpul dalam kluster adalah dengan memasang HDInsight ke dalam Azure Virtual Network. Kemudian, Anda dapat bergabung dengan komputer jarak jauh Anda ke jaringan virtual yang sama dan langsung mengakses semua simpul di kluster.

Untuk informasi selengkapnya, lihat Merencanakan jaringan virtual untuk HDInsight.

Konfigurasikan penerusan agen SSH

Penting

Langkah-langkah berikut mengasumsikan sistem berbasis Linux atau UNIX, dan bekerja dengan Bash pada Windows 10. Jika langkah-langkah ini tidak berfungsi untuk sistem Anda, Anda mungkin perlu melihat dokumentasi untuk klien SSH Anda.

  1. Menggunakan editor teks, buka ~/.ssh/config. Jika file ini tidak ada, Anda dapat membuatnya dengan memasukkannya touch ~/.ssh/config di baris perintah.

  2. Tambahkan kode berikut ke file config.

    Host <edgenodename>.<clustername>-ssh.azurehdinsight.net
        ForwardAgent yes
    

    Ganti informasi Host dengan alamat simpul yang Anda sambungkan menggunakan SSH. Contoh sebelumnya menggunakan simpul tepi. Entri ini mengonfigurasi penerusan agen SSH untuk simpul yang ditentukan.

  3. Uji penerusan agen SSH dengan menggunakan perintah berikut dari terminal:

    echo "$SSH_AUTH_SOCK"
    

    Perintah ini mengembalikan informasi yang mirip dengan teks berikut:

    /tmp/ssh-rfSUL1ldCldQ/agent.1792
    

    Jika tidak ada yang dikembalikan, maka ssh-agent tidak berjalan.

  4. Setelah Anda memverifikasi bahwa ssh-agent berjalan, gunakan hal berikut ini untuk menambahkan kunci privat SSH Anda ke agen:

    ssh-add ~/.ssh/id_rsa
    

    Jika kunci pribadi Anda disimpan dalam file lain, ganti ~/.ssh/id_rsa dengan jalur ke file.

  5. Sambungkan ke simpul tepi kluster atau simpul head menggunakan SSH. Kemudian gunakan perintah SSH untuk terhubung ke simpul pekerja atau zookeeper. Sambungan dibuat menggunakan kunci yang diteruskan.

Langkah berikutnya