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.
İpucu
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:
OpenSSH İstemcisi. Bu istemci, Windows 10 Fall Creators Update'te kullanıma sunulan isteğe bağlı bir özelliktir.
Windows 10'da Ubuntu'da Bash.
Azure Cloud Shell. Cloud Shell, tarayıcınızda bir Bash ortamı sağlar.
Git.
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. |
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. |
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, buradaclustername
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, buradaedgenodename
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:
SSH kullanarak bir baş veya kenar düğümüne bağlanın:
ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
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.
Not
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.
Bir metin düzenleyicisiyle
~/.ssh/config
dosyasını açın. Bu dosya yoksa, komut satırındatouch ~/.ssh/config
girerek oluşturabilirsiniz.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.
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.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.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.