Aracılığıyla paylaş


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 Liman Bağlanıyor...
<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. yerine kenar düğümünün adını yazın <edgenodename> .

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

Tavsiye

HDInsight'a ilk kez bağlandığınızda, SSH istemciniz konağın orijinalliği doğrulanamaz uyarısı verebilir. İstendiğinde konağı SSH istemcinizin güvenilen sunucu listesine eklemek için 'evet' seçeneğini belirleyin.

Daha önce aynı ada sahip bir sunucuya bağlandıysanız, depolanan ana bilgisayar anahtarının sunucunun konak anahtarıyla eşleşmediğini belirten bir uyarı alabilirsiniz. Sunucu adı için var olan girdiyi kaldırma hakkında SSH istemcinizin belgelerine bakın.

SSH istemcileri

Linux, Unix ve macOS sistemleri ssh ve scp komutlarını sağlar. İstemci ssh genellikle Linux veya Unix tabanlı bir sistemle uzak komut satırı oturumu oluşturmak için kullanılır. İstemci scp , istemcinizle uzak sistem arasında dosyaları 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 yardımcı programı kullanmaktan ssh 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ı parolalardan daha güvenlidir ve Hadoop kümenize erişimi güvenli hale getirmek için kolay bir yol sağlar.

SSH hesabınızın güvenliği bir anahtar kullanılarak sağlanıyorsa, bağlandığınızda istemcinin eşleşen özel anahtarı sağlaması gerekir:

  • çoğu istemci varsayılan anahtarı kullanacak şekilde yapılandırılabilir. Örneğin, ssh istemci Linux ve Unix ortamlarında bir özel anahtar ~/.ssh/id_rsa arar.

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

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

Önemli

Özel anahtarınızın güvenliğini bir parolayla sağlarsanız, anahtarı kullanırken parolayı girmeniz gerekir. gibi ssh-agent yardımcı programlar, kolaylık sağlamak için parolayı önbelleğe alabilir.

SSH anahtar çifti oluşturma

ssh-keygen Ortak ve özel anahtar dosyaları oluşturmak için 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 depolandığı yer veya parola kullanılıp kullanılmayacağı. İşlem tamamlandıktan sonra iki dosya oluşturulur; ortak anahtar ve özel anahtar.

  • HdInsight kümesi oluşturmak için ortak anahtar kullanılır. Ortak anahtarın uzantısı .pub.

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

Önemli

Parola kullanarak anahtarlarınızın güvenliğini sağlayabilirsiniz. Geçiş cümlesi, özel anahtarınız üzerinde etkili bir parola görevi görür. Birisi özel anahtarınızı alsa bile, anahtarı kullanmak için parolaya sahip olmalıdır.

Ortak anahtarı kullanarak HDInsight oluşturma

Oluşturma yöntemi Açık 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.
HDInsight kümesi oluşturmada SSH ortak anahtar iletişim kutusu.
Azure PowerShell -SshPublicKey New-AzHdinsightCluster cmdlet'inin parametresini kullanın ve ortak anahtarın içeriğini dize olarak geçirin.
Azure Komut Satırı Arayüzü (Azure CLI) komutunun --sshPublicKey parametresini az hdinsight create kullanın ve ortak anahtarın içeriğini dize olarak geçirin.
Resource Manager Şablonu SSH anahtarlarını şablonla kullanma örneği için bkz. Linux'ta HDInsight'ı SSH anahtarıyla dağıtma. publicKeys azuredeploy.json dosyasındaki öğesi, kümeyi oluştururken anahtarları Azure'a 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ı 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ını kullanmanızı öneririz.

Ö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önet belgesindeki bilgileri kullanarak parolanızı değiştirebilirsiniz.

Parola kullanarak HDInsight oluşturma

Oluşturma yöntemi Parolayı belirtme
Azure portalı Varsayılan olarak, SSH kullanıcı hesabı küme oturum açma hesabıyla 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.
HDInsight kümesi oluşturmada SSH parolası iletişim kutusu.
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 Komut Satırı Arayüzü (Azure CLI) komutunun --ssh-password parametresini az hdinsight create kullanın ve parola değerini sağlayın.
Resource Manager Şablonu Şablonla parola kullanma örneği için bkz. Linux'ta HDInsight'ı SSH parolası ile dağıtma. linuxOperatingSystemProfile azuredeploy.json dosyasındaki öğesi, kümeyi oluştururken SSH hesabı adını ve 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.

HDInsight kimlik doğrulama etki alanına katıldı

Etki alanına katılmış bir HDInsight kümesi kullanıyorsanız, SSH yerel kullanıcısıyla bağlandıktan sonra kinit komutunu kullanmanız 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 yapılandırma dosyasını düzenleyin:

sudo vi /etc/ssh/sshd_config

Açıklamayı kaldırın ve KerberosAuthentication'yi 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ğlanın

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üğümüne bağlanmak için 22 numaralı bağlantı noktasını, ikincil baş düğümüne bağlanmak için de 23 numaralı bağlantı noktasını kullanın. Kullanılacak tam etki alanı adı clustername-ssh.azurehdinsight.net, 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. Tam etki alanı adı edgenodename.clustername-ssh.azurehdinsight.net'dir, burada edgenodename kenar düğümü oluştururken sağladığınız bir addır. clustername kümenin adıdır.

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

Önemli

Önceki örneklerde parola kimlik doğrulaması kullandığınız veya sertifika kimlik doğrulamasının otomatik olarak gerçekleştiği 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 parametresini kullanın -i . Ö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, birincil baş düğümüne sshuser bağlanıldığında, istem şu şekildedir sshuser@<active-headnode-name>:~$.

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

İşçi düğümlerine ve Zookeeper düğümlerine internet'ten doğrudan erişilemez. Bunlara küme baş düğümlerinden veya kenar düğümlerinden erişilebilir. Diğer düğümlere bağlanmaya yönelik genel adımlar şunlardır:

  1. Bir baş veya kenar düğümüne bağlanmak için SSH kullanın:

    ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
    
  2. SSH bağlantısı ile baş veya kenar düğümünden kümedeki bir çalışan düğümüne bağlanmak için ssh komutunu kullanı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, istemcide SSH iletmenin etkinleştirildiğinden emin olun.

Uyarı

Kümedeki tüm düğümlere doğrudan erişmenin bir diğer yolu da HDInsight'ı azure sanal ağına yüklemektir. Ardından uzak makinenizi aynı sanal ağa ekleyebilir ve kümedeki tüm düğümlere doğrudan erişebilirsiniz.

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

SSH ajan iletmeyi yapılandırma

Önemli

Aşağıdaki adımlarda Linux veya UNIX tabanlı bir sistem varsayılır ve Windows 10'da Bash ile çalışılır. Bu adımlar sisteminizde işe yaramazsa SSH istemcinizin belgelerine başvurmanız gerekebilir.

  1. Metin düzenleyicisi kullanarak dosyasını açın ~/.ssh/config. Bu dosya yoksa, komut satırına girerek touch ~/.ssh/config oluşturabilirsiniz.

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

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

    Konak bilgilerini SSH kullanarak bağlandığınız düğümün adresiyle değiştirin. Önceki örnekte kenar düğümü kullanılır. Bu girdi, belirtilen düğüm için SSH aracısı iletmeyi yapılandırıyor.

  3. Terminalden aşağıdaki komutu kullanarak SSH aracısı 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 depolanıyorsa, ~/.ssh/id_rsa'yı dosyanın yolu ile değiştirin.

  5. SSH kullanarak küme kenar düğümüne veya baş düğümlerine bağlanın. Ardından bir çalışana veya zookeeper düğümüne bağlanmak için SSH komutunu kullanın. Bağlantı, iletilen anahtar kullanılarak kurulur.

Sonraki adımlar