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:
Klien OpenSSH. Klien ini adalah fitur opsional yang diperkenalkan di Windows 10 Fall Creators Update.
Azure Cloud Shell. Cloud Shell menyediakan lingkungan Bash di browser Anda.
Git.
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. |
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. |
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 manaclustername
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 manaedgenodename
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:
Gunakan SSH untuk menyambungkan ke simpul head atau tepi:
ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
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.
Menggunakan editor teks, buka
~/.ssh/config
. Jika file ini tidak ada, Anda dapat membuatnya dengan memasukkannyatouch ~/.ssh/config
di baris perintah.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.
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.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.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.