Připojení ke službě HDInsight (Apache Hadoop) pomocí SSH
Naučte se používat Secure Shell (SSH) k zabezpečenému připojení k Apache Hadoopu ve službě Azure HDInsight. Informace o připojení prostřednictvím virtuální sítě najdete v tématu Architektura virtuální sítě Azure HDInsight. Viz také Plánování nasazení virtuální sítě pro clustery Azure HDInsight.
Následující tabulka obsahuje informace o adrese a portu potřebné pro připojení ke službě HDInsight pomocí klienta SSH:
Adresa | Port | Připojení... |
---|---|---|
<clustername>-ssh.azurehdinsight.net |
22 | Primární hlavní uzel |
<clustername>-ssh.azurehdinsight.net |
23 | Sekundární hlavní uzel |
<edgenodename>.<clustername>-ssh.azurehdinsight.net |
22 | hraniční uzel (jakýkoli jiný typ clusteru, pokud existuje hraniční uzel) |
Nahraďte <clustername>
názvem svého clusteru. Parametr <edgenodename>
nahraďte názvem hraničního uzlu.
Pokud cluster obsahuje hraniční uzel, doporučujeme vám připojovat se k hraničnímu uzlu vždy pomocí příkazu SSH. Hlavní uzly hostují služby, které jsou pro stav clusteru Hadoop klíčové. Na hraničním uzlu se spustí jenom to, co na něj umístíte. Další informace o použití hraničních uzlů najdete v tématu věnovaném použití hraničních uzlů v HDInsightu.
Tip
Když se poprvé připojíte ke službě HDInsight, ve vašem klientovi SSH se může zobrazit upozornění na nemožnost potvrzení pravosti hostitele. Po zobrazení výzvy vyberte yes (ano) a hostitel se přidá na seznam důvěryhodných serverů vašeho klienta SSH.
Pokud jste se dříve připojili k serveru se stejným názvem, může se zobrazit upozornění na neshodu uloženého klíče hostitele s klíčem hostitele serveru. Postup pro odebrání existující položky pro název serveru najdete v dokumentaci k vašemu klientovi SSH.
Klienti SSH
Systémy Linux, Unix a macOS nabízí příkazy ssh
a scp
. Klient ssh
se v systému založeném na Linuxu nebo Unixu běžně používá k vytvoření vzdálené relace příkazového řádku. Klient scp
slouží k bezpečnému kopírování souborů mezi vaším klientem a vzdáleným systémem.
Microsoft Windows ve výchozím nastavení neinstaluje žádné klienty SSH. Klienti ssh
a scp
jsou ve Windows k dispozici prostřednictvím následujících balíčků:
OpenSSH Client. Tento klient je volitelná funkce představená ve Windows 10 Fall Creators Update.
Azure Cloud Shell Cloud Shell poskytuje prostředí Bash v prohlížeči.
K dispozici je také několik grafických klientů SSH, jako je PuTTY a MobaXterm. I když je možné tyto klienty použít pro připojení k HDInsightu, proces připojení se od použití nástroje ssh
liší. Další informace najdete v dokumentaci grafického klienta, který používáte.
Ověřování: Klíče SSH
Klíče SSH používají k ověřování relací SSH kryptografii veřejného klíče. Klíče SSH jsou bezpečnější než hesla a nabízí snadný způsob, jak zabezpečit přístup ke clusteru Hadoop.
Pokud je váš účet SSH zabezpečený pomocí klíče, klient musí při připojení poskytnout odpovídající privátní klíč:
Většinu klientů jde nakonfigurovat k použití výchozího klíče. Například klient
ssh
v prostředích Linux a Unix hledá privátní klíč v~/.ssh/id_rsa
.Můžete zadat cestu k privátnímu klíči. U klienta
ssh
se k zadání cesty k privátnímu klíči využívá parametr-i
. Napříkladssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net
.Pokud máte více privátních klíčů, které používáte na různých serverech, zvažte používání nástroje, jako je SSH agent (https://en.wikipedia.org/wiki/Ssh-agent). Nástroj
ssh-agent
může sloužit k automatickému výběru správného klíče při navazování relace SSH.
Důležité
Pokud privátní klíč zabezpečíte pomocí přístupového hesla, musíte při použití klíče zadat toto heslo. Nástroje, jako je ssh-agent
, mohou pro usnadnění práce ukládat hesla do mezipaměti.
Vytvoření páru klíčů SSH
K vytvoření souborů veřejného a privátního klíče použijte příkaz ssh-keygen
. Následující příkaz generuje 2048bitový pár klíčů RSA, který je možné použít s HDInsightem:
ssh-keygen -t rsa -b 2048
Během procesu vytváření klíče se zobrazí výzva k zadání informací. třeba kde jsou klíče uložené nebo jestli se má použít přístupové heslo. Po dokončení tohoto procesu se vytvoří dva soubory: veřejný klíč a privátní klíč.
Veřejný klíč se používá k vytvoření clusteru HDInsight. Veřejný klíč má příponu
.pub
.Privátní klíč se používá k ověření vašeho klienta pro cluster HDInsight.
Důležité
Klíče můžete zabezpečit pomocí přístupového hesla. Přístupové heslo je ve skutečnosti heslo k privátnímu klíči. I kdyby někdo získal váš privátní klíč, může ho použít jenom v případě, že má přístupové heslo.
Vytvoření HDInsightu s využitím veřejného klíče
Metoda vytvoření | Jak použít veřejný klíč |
---|---|
portál Azure | Zrušte zaškrtnutí políčka Použít přihlašovací heslo clusteru pro SSH a jako typ ověřování SSH vyberte Veřejný klíč . Nakonec vyberte soubor veřejného klíče nebo vložte textový obsah souboru do pole veřejného klíče SSH. |
Azure PowerShell | -SshPublicKey Použijte parametr rutiny New-AzHdinsightCluster a předejte obsah veřejného klíče jako řetězec. |
Azure CLI | Použijte parametr --sshPublicKey příkazu az hdinsight create a obsah veřejného klíče předejte jako řetězec. |
Šablona Resource Manageru | Příklad použití klíčů SSH s využití šablony najdete v části věnované nasazení HDInsightu v Linuxu pomocí klíče SSH. Element publicKeys v souboru azuredeploy.json slouží při vytváření clusteru k předání klíčů do Azure. |
Ověřování: Heslo
Účty SSH je možné zabezpečit pomocí hesla. Když se připojíte ke službě HDInsight pomocí SSH, zobrazí se výzva k zadání hesla.
Upozorňující
Microsoft nedoporučuje pro SSH používat ověřování heslem. Hesla se dají uhádnout a můžou se stát terčem útoku hrubou silou. Místo toho doporučujeme využívat klíče SSH k ověřování.
Důležité
Platnost hesla účtu SSH vyprší 70 dní po vytvoření clusteru HDInsight. Pokud platnost hesla vyprší, můžete ho změnit s využitím informací v dokumentu Správa HDInsight.
Vytvoření HDInsight s využitím hesla
Metoda vytvoření | Jak zadat heslo |
---|---|
portál Azure | Ve výchozím nastavení má uživatelský účet SSH stejné heslo jako účet pro přihlášení ke clusteru. Pokud chcete použít jiné heslo, zrušte zaškrtnutí políčka Použít přihlašovací heslo clusteru pro SSH a zadejte heslo do pole pro heslo SSH. |
Azure PowerShell | --SshCredential Použijte parametr rutiny New-AzHdinsightCluster a předejte PSCredential objekt, který obsahuje název a heslo uživatelského účtu SSH. |
Azure CLI | Použijte parametr --ssh-password příkazu az hdinsight create a zadejte hodnotu hesla. |
Šablona Resource Manageru | Příklad použití hesla s využitím šablony najdete v části věnované nasazení HDInsightu v Linuxu pomocí hesla SSH. Element linuxOperatingSystemProfile v souboru azuredeploy.json slouží při vytváření clusteru k předání hesla a názvu učtu SSH do Azure. |
Změna hesla SSH
Informace o změně hesla uživatelského účtu SSH najdete v dokumentu věnovaném správě HDInsightu v části Změna hesel.
HdInsight připojený k doméně ověřování
Pokud používáte cluster HDInsight připojený k doméně, musíte po připojení k místnímu uživateli SSH použít kinit
příkaz. Tento příkaz vás vyzve k zadání uživatele domény a hesla a ověří vaši relaci s doménou Microsoft Entra přidruženou ke clusteru.
Ověřování protokolem Kerberos můžete povolit také na každém uzlu připojeném k doméně (například hlavní uzel, hraniční uzel), aby ssh používal účet domény. To vyžaduje úpravu konfiguračního souboru sshd:
sudo vi /etc/ssh/sshd_config
Zrušte komentář u položky KerberosAuthentication
a změňte její hodnotu na yes
.
sudo service sshd restart
Pomocí klist
příkazu ověřte, jestli ověřování Kerberos proběhlo úspěšně.
Další informace najdete v tématu Konfigurace clusterů HDInsight připojených k doméně.
Připojení k uzlům
Hlavní uzly a hraniční uzel (pokud existuje) jsou přístupné přes internet na portech 22 a 23.
Při připojování k hlavním uzlům použijte port 22 pro připojení k primárnímu hlavnímu uzlu a port 23 pro připojení k sekundárnímu hlavnímu uzlu. Plně kvalifikovaný název domény, který byste měli použít, je
clustername-ssh.azurehdinsight.net
, kdeclustername
je název vašeho clusteru.# 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
Při připojování k hraničnímu uzlu použijte port 22. Plně kvalifikovaný název domény je
edgenodename.clustername-ssh.azurehdinsight.net
, kdeedgenodename
je název zadaný při vytváření hraničního uzlu.clustername
je název clusteru.# Connect to edge node ssh sshuser@edgnodename.clustername-ssh.azurehdinsight.net
Důležité
V předchozích příkladech se předpokládá, že používáte ověřování heslem nebo že automaticky probíhá ověřování certifikátů. Pokud k ověřování používáte pár klíč-hodnota SSH a certifikát se nepoužívá automaticky, použijte parametr -i
k zadání privátního klíče. Například ssh -i ~/.ssh/mykey sshuser@clustername-ssh.azurehdinsight.net
.
Po připojení se výzva změní, aby označí uživatelské jméno SSH a uzel, ke kterému jste připojení. Například po připojení k primárnímu hlavnímu uzlu jako sshuser
se na příkazovém řádku zobrazí sshuser@<active-headnode-name>:~$
.
Připojení k pracovním uzlům a uzlům Apache Zookeeper
Pracovní uzly a uzly Zookeeper nejsou přístupné přímo z internetu. Lze se k nim dostat z hlavních nebo hraničních uzlů clusteru. Toto jsou obecné kroky pro připojení k ostatním uzlům:
Pomocí SSH se připojte k hlavnímu nebo hraničnímu uzlu:
ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
V rámci připojení SSH k hlavnímu nebo hraničnímu uzlu použijte příkaz
ssh
pro připojení k pracovnímu uzlu v clusteru:ssh sshuser@wn0-myhdi
Pokud chcete načíst seznam názvů uzlů, přečtěte si téma Správa SLUŽBY HDInsight pomocí dokumentu rozhraní REST API Apache Ambari.
Pokud je účet SSH zabezpečený heslem, zadejte toto heslo při připojování.
Pokud je účet SSH zabezpečený klíči SSH, zkontrolujte, jestli je na klientovi zapnuté přesměrování SSH.
Poznámka:
Dalším možným způsobem přímého přístupu ke všem uzlům clusteru je instalace HDInsightu do služby Azure Virtual Network. Potom můžete váš vzdálený počítač připojit ke stejné virtuální síti a získat přímý přístup ke všem uzlům v clusteru.
Další informace najdete v tématu Plánování virtuální sítě pro HDInsight.
Konfigurace přesměrování agenta SSH
Důležité
V následujících krocích se předpokládá využití systému založeného na Linuxu nebo UNIXu a funkce Bash on Windows 10. Pokud tyto kroky pro váš systém nefungují, možná budete nahlédnout do dokumentace k příslušnému klientovi SSH.
V textovém editoru otevřete
~/.ssh/config
. Pokud tento soubor neexistuje, můžete ho vytvořit tak, že na příkazovém řádku zadátetouch ~/.ssh/config
.Do souboru
config
přidejte následující text.Host <edgenodename>.<clustername>-ssh.azurehdinsight.net ForwardAgent yes
Informace o hostiteli nahraďte adresou uzlu, ke kterému se připojujete pomocí SSH. Předchozí příklad používá hraniční uzel. Tato položka nakonfiguruje přesměrování agenta SSH pro zadaný uzel.
Proveďte test přesměrování agenta SSH pomocí následujícího příkazu z terminálu:
echo "$SSH_AUTH_SOCK"
Tento příkaz by měl vrátit informace podobné následujícímu textu:
/tmp/ssh-rfSUL1ldCldQ/agent.1792
Pokud se nic nevrátí, pak
ssh-agent
neběží.Jakmile ověříte, že je agent ssh-agent spuštěný, přidejte do agenta privátní klíč SSH následujícím postupem:
ssh-add ~/.ssh/id_rsa
Pokud je privátní klíč uložen v jiném souboru, nahraďte
~/.ssh/id_rsa
cestou k souboru.Připojte se k hlavním uzlům nebo hraničnímu uzlu clusteru pomocí protokolu SSH. Potom se pomocí příkazu SSH k připojte k pracovnímu uzlu nebo k uzlu Zookeeper. Připojení se naváže s využitím přesměrovaného klíče.