SSH kullanarak HDInsight’a (Apache Hadoop) bağlanma

Azure HDInsight üzerinde Apache Hadoop'a güvenli bir şekilde bağlanmak için Secure Shell (SSH) kullanmayı öğrenin. Sanal ağ üzerinden bağlanma hakkında bilgi için bkz . Azure HDInsight sanal ağ mimarisi. Ayrıca bkz. Azure HDInsight kümeleri için sanal ağ dağıtımı planlama.

Aşağıdaki tablo, SSH istemcisi kullanarak HDInsight'a bağlanırken gereken adres ve bağlantı noktası bilgilerini içerir:

Adres Bağlantı noktası Bağlandığı yer...
<clustername>-ssh.azurehdinsight.net 22 Birincil baş düğüm
<clustername>-ssh.azurehdinsight.net 23 İkincil baş düğüm
<edgenodename>.<clustername>-ssh.azurehdinsight.net 22 kenar düğümü (kenar düğümü varsa başka bir küme türü)

<clustername> değerini kümenizin adıyla değiştirin. <edgenodename> ifadesini kenar düğümünün adıyla değiştirin.

Kümeniz bir kenar düğümü içeriyorsa kenar düğümüne her zaman SSH’yi kullanarak bağlanmanızı öneririz. Baş düğümler, Hadoop’un sistem durumu için kritik öneme sahip olan hizmetleri barındırır. Kenar düğümü yalnızca üzerine yerleştirdiğiniz öğeleri çalıştırır. Kenar düğümlerini kullanma hakkında daha fazla bilgi için bkz. HDInsight’ta kenar düğümlerini kullanma.

Bahşiş

HDInsight'a ilk kez bağlandığınızda SSH istemciniz konağın orijinalliğinin belirlenemediği yönünde bir uyarı görüntüleyebilir. Konağı SSH istemcinizin güvenilen sunucular listesine eklemek isteyip istemediğiniz sorulduğunda "Evet"i seçin.

Daha önceden aynı ada sahip bir sunucuya bağlandıysanız konak anahtarının sunucu konak anahtarıyla eşleşmediğine dair bir uyarı alabilirsiniz. Var olan sunucu adı girişini kaldırma talimatları için SSH istemcinizin belgelerine bakın.

SSH istemcileri

Linux, Unix ve macOS sistemleri ssh ve scp komutlarını sağlar. ssh istemcisi, yaygın olarak Linux veya Unix tabanlı bir sistemle uzak komut satırı oturumu oluşturmak için kullanılır. scp istemcisi, dosyaları istemciniz ve uzak sistem arasında güvenli bir şekilde kopyalamak için kullanılır.

Microsoft Windows varsayılan olarak herhangi bir SSH istemcisi yüklemez. ssh ve scp istemcileri, aşağıdaki paketler aracılığıyla Windows için kullanılabilir:

PuTTY ve MobaXterm gibi çeşitli grafik SSH istemcileri de vardır. Bu istemciler HDInsight’a bağlanmak için kullanılabilse de bağlanma işlemi ssh yardımcı programını kullanmaktan farklıdır. Daha fazla bilgi için kullandığınız grafik istemcisinin belgelerine bakın.

Kimlik doğrulaması: SSH Anahtarları

SSH anahtarları, SSH oturumlarının kimliğini doğrulamak için ortak anahtar şifrelemesi kullanır. SSH anahtarları parolalara göre daha güvenlidir ve Hadoop kümenize erişimin güvenliğini sağlamak için kolay bir yol sağlar.

SSH hesabınızın güvenliği bir anahtar yardımıyla sağlanıyorsa, bağlantı kurduğunuzda istemci eşleşen özel anahtarı sağlamalıdır:

  • Çoğu istemci, bir varsayılan anahtar kullanmak üzere yapılandırılmıştır. Örneğin, ssh istemcisi Linux ve Unix ortamlarında ~/.ssh/id_rsa üzerinde bir özel anahtar arar.

  • Özel anahtarın yolunu belirtebilirsiniz. ssh istemcisi ile özel anahtarın yolunu belirtmek için -i parametresi kullanılır. Örneğin, ssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net.

  • Farklı sunucularla kullanılacak birden fazla özel anahtarınız varsa ssh-agent (https://en.wikipedia.org/wiki/Ssh-agent) gibi bir yardımcı program kullanmayı deneyin. ssh-agent yardımcı programı, SSH oturumu oluşturulurken kullanılacak anahtarı otomatik olarak seçmek için kullanılabilir.

Önemli

Özel anahtarınızın güvenliğini şifre ile sağlıyorsanız, anahtarı kullanmak için şifreyi girmeniz gerekir. ssh-agent gibi yardımcı programlar, size kolaylık sağlamak için parolayı önbelleğe alabilir.

SSH anahtar çifti oluşturma

Ortak ve özel anahtar dosyaları oluşturmak için ssh-keygen komutunu kullanın. Aşağıdaki komut, HDInsight ile kullanılabilecek bir 2048-bit RSA anahtar çifti oluşturur:

ssh-keygen -t rsa -b 2048

Anahtar oluşturma işlemi sırasında sizden bilgi istenir. Örneğin, anahtarların nerede depolanacağı veya şifre kullanılıp kullanılmayacağı. İşlem tamamlandıktan sonra biri ortak anahtar, diğeri özel anahtar olmak üzere iki dosya oluşturulur.

  • Ortak anahtar bir HDInsight kümesi oluşturmak için kullanılır. Ortak anahtar .pub uzantısına sahiptir.

  • Özel anahtar, HDInsight kümesinde istemcinizin kimliğini doğrulamak için kullanılır.

Önemli

Anahtarlarınızın güvenliğini şifre ile sağlayabilirsiniz. Parola, aslında özel anahtarınız üzerindeki bir şifredir. Özel anahtarınız başkası tarafından ele geçirilirse, anahtarın kullanılması için şifrenin girilmesi gerekir.

Ortak anahtar kullanarak HDInsight oluşturma

Oluşturma yöntemi Ortak anahtarı kullanma
Azure portalı SSH için küme oturum açma parolasını kullan'ın işaretini kaldırın ve SSH kimlik doğrulama türü olarak Ortak Anahtar'ı seçin. Son olarak, ortak anahtar dosyasını seçin veya dosyanın metin içeriğini SSH ortak anahtar alanına yapıştırın.
SSH public key dialog in HDInsight cluster creation
Azure PowerShell -SshPublicKey New-AzHdinsightCluster cmdlet'inin parametresini kullanın ve ortak anahtarın içeriğini dize olarak geçirin.
Azure CLI az hdinsight create komutunun --sshPublicKey parametresini kullanarak, ortak anahtarın içeriğini dize olarak geçirin.
Resource Manager Şablonu SSH anahtarlarını şablonla kullanma örneği için bkz. HDInsight’ı SSH anahtarı ile Linux’a dağıtma. azuredeploy.json dosyasında publicKeys öğesi, kümeyi oluştururken Azure’a anahtarları geçirmek için kullanılır.

Kimlik doğrulaması: Parola

SSH hesaplarının güvenliği bir parola kullanılarak sağlanabilir. SSH kullanarak HDInsight'a bağlandığınızda parolayı girmeniz istenir.

Uyarı

Microsoft, SSH için parola kimlik doğrulamasının kullanılmasını önermez. Parolalar tahmin edilebilir ve deneme yanılma saldırılarına karşı savunmasızdır. Bunun yerine, kimlik doğrulaması için SSH anahtarları kullanmanız önerilir.

Önemli

SSH hesabı parolasının, HDInsight kümesi oluşturulduktan 70 gün sonra süresi dolar. Parolanızın süresi dolarsa HDInsight’ı yönetme belgesindeki bilgileri kullanarak değiştirebilirsiniz.

Parola kullanarak HDInsight oluşturma

Oluşturma yöntemi Parola belirtme
Azure portalı Varsayılan olarak, SSH kullanıcı hesabı ile küme oturum açma hesabı aynı parolaya sahiptir. Farklı bir parola kullanmak için SSH için küme oturum açma parolasını kullan'ın işaretini kaldırın ve parolayı SSH parolası alanına girin.
SSH password dialog in HDInsight cluster creation
Azure PowerShell --SshCredential New-AzHdinsightCluster cmdlet'inin parametresini kullanın ve SSH kullanıcı hesabı adını ve parolasını içeren bir PSCredential nesne geçirin.
Azure CLI az hdinsight create komutunun --ssh-password parametresini kullanarak parola değerini belirtin.
Resource Manager Şablonu Parolayı şablonla kullanma örneği için bkz. HDInsight’ı SSH parolası ile Linux’a dağıtma. azuredeploy.json dosyasındaki linuxOperatingSystemProfile öğesi, kümeyi oluştururken SSH hesabı adı ile parolasını Azure’a geçirmek için kullanılır.

SSH parolasını değiştirme

SSH kullanıcı hesabı parolasını değiştirme hakkında bilgi için, HDInsight’ı Yönetme belgesinin Parolaları değiştirme bölümüne bakın.

Kimlik doğrulama etki alanına katılmış HDInsight

Etki alanına katılmış bir HDInsight kümesi kullanıyorsanız, SSH yerel kullanıcısıyla bağlandıktan sonra komutunu kullanmanız kinit gerekir. Bu komut sizden bir etki alanı kullanıcısı ve parolası ister ve kümeyle ilişkilendirilmiş Microsoft Entra etki alanıyla oturumunuzun kimliğini doğrular.

Ayrıca etki alanına katılmış her düğümde (baş düğüm, kenar düğümü gibi) Kerberos Kimlik Doğrulamasını etki alanı hesabını kullanarak ssh olarak etkinleştirebilirsiniz. Bunu yapmak için sshd config dosyasını düzenleyin:

sudo vi /etc/ssh/sshd_config

açıklamayı kaldırın ve KerberosAuthentication değerini yes olarak değiştirin

sudo service sshd restart

Kerberos kimlik doğrulamasının başarılı olup olmadığını doğrulamak için komutunu kullanın klist .

Daha fazla bilgi için bkz. Etki alanına katılmış HDInsight yapılandırma.

Düğümlere bağlanma

Baş düğümlere ve kenar düğümüne (varsa) 22 ve 23 numaralı bağlantı noktalarından İnternet üzerinden erişilebilir.

  • Baş düğümlere bağlanırken, birincil baş düğüme bağlanmak için 22, ikincil baş düğüme bağlanmak için 23 numaralı bağlantı noktasını kullanın. Kullanılacak tam etki alanı adı clustername-ssh.azurehdinsight.net‘tir, burada clustername kümenizin adıdır.

    # 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
    
  • Kenar düğümüne bağlanırken 22 numaralı bağlantı noktasını kullanın. Kullanılacak tam etki alanı adı edgenodename.clustername-ssh.azurehdinsight.net‘tir, burada edgenodename kenar düğümü oluştururken girdiğiniz addır. clustername, kümenin adıdır.

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

Önemli

Önceki örneklerde, parola ile kimlik doğrulaması kullandığınız veya sertifika kimlik doğrulamasının otomatik olarak yapıldığı varsayılır. Kimlik doğrulaması için bir SSH anahtar çifti kullanıyorsanız ve sertifika otomatik olarak kullanılmıyorsa, özel anahtarı belirtmek için -i parametresini kullanın. Örneğin, ssh -i ~/.ssh/mykey sshuser@clustername-ssh.azurehdinsight.net.

Bağlandıktan sonra istem, SSH kullanıcı adını ve bağlandığınız düğümü gösterecek şekilde değişir. Örneğin, sshuser olarak birincil baş düğüme bağlıyken komut istemi sshuser@<active-headnode-name>:~$ değerini gösterir.

Çalışan ve Apache Zookeeper düğümlerine Bağlan

Çalışan düğümlerine ve Zookeeper düğümlerine İnternet'ten doğrudan erişilemez. Bunlara, küme baş düğümleri veya kenar düğümlerinden erişilebilir. Diğer düğümlere bağlanmak için uygulamanız gereken genel adımlar şunlardır:

  1. SSH kullanarak bir baş veya kenar düğümüne bağlanın:

    ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
    
  2. Baş veya kenar düğümüne yaptığınız SSH bağlantısında ssh komutunu kullanarak kümedeki bir çalışan düğümüne bağlanın:

    ssh sshuser@wn0-myhdi
    

    Düğüm adlarının listesini almak için Apache Ambari REST API'sini kullanarak HDInsight'ı yönetme belgesine bakın.

SSH hesabının güvenliği bir parola kullanılarak sağlanıyorsa bağlanırken parolayı girin.

SSH hesabının güvenliği SSH anahtarları kullanılarak sağlanıyorsa istemciden SSH iletmenin etkinleştirildiğinden emin olun.

Dekont

Kümedeki tüm düğümlere doğrudan erişmenin başka bir yolu ise HDInsight’ın bir Azure Sanal Ağına bağlanmasıdır. Bundan sonra, uzak makinenizi aynı sanal ağa bağlayabilir ve kümedeki tüm düğümlere doğrudan erişebilirsiniz.

Daha fazla bilgi için bkz . HDInsight için sanal ağ planlama.

SSH aracı iletmeyi yapılandırma

Önemli

Aşağıdaki adımlar, Linux veya UNIX tabanlı bir sistem için geçerlidir ve Windows 10 üzerinde Bash ile birlikte çalışır. Bu adımlar sisteminizde çalışmazsa SSH istemcinizin belgelerine bakmanız gerekebilir.

  1. Bir metin düzenleyicisiyle ~/.ssh/config dosyasını açın. Bu dosya yoksa, komut satırında touch ~/.ssh/config girerek oluşturabilirsiniz.

  2. Aşağıdakileri metni config dosyasına ekleyin.

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

    Ana bilgisayar bilgisini, SSH kullanarak bağlandığınız düğümün adresiyle değiştirin. Önceki örnekte kenar düğümü kullanılmıştır. Bu giriş, belirtilen düğüm için SSH aracı iletmeyi yapılandırır.

  3. Terminalde aşağıdaki komutu kullanarak, SSH aracı iletmeyi test edin:

    echo "$SSH_AUTH_SOCK"
    

    Bu komutun aşağıdaki metne benzer bilgiler döndürmesi gerekir:

    /tmp/ssh-rfSUL1ldCldQ/agent.1792
    

    Hiçbir şey döndürülmezse ssh-agent çalışmıyor demektir.

  4. ssh-agent'ın çalıştığını doğruladıktan sonra, SSH özel anahtarınızı aracıya eklemek için aşağıdakileri kullanın:

    ssh-add ~/.ssh/id_rsa
    

    Özel anahtarınızı farklı bir dosyada saklanıyorsa, ~/.ssh/id_rsa ile dosyanın yolunu değiştirin.

  5. SSH kullanarak küme kenar düğümüne veya baş düğümlerine bağlanın. Ardından, SSH komutunu kullanarak bir çalışan veya zookeeper düğümüne bağlanın. İletilen anahtar kullanılarak bağlantı kurulur.

Sonraki adımlar