Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 | Přístav | Připojuje se k... |
---|---|---|
<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. Nahraďte <edgenodename>
názvem hraničního uzlu.
Pokud váš cluster obsahuje hraniční uzel, doporučujeme, abyste se vždy připojili k hraničnímu uzlu pomocí SSH. Hlavní uzly hostují služby, které jsou důležité pro stav Systému Hadoop. Okrajový uzel spustí jen to, co na něj umístíte. Další informace o používání hraničních uzlů najdete v tématu Použití hraničních uzlů ve službě HDInsight.
Návod
Když se poprvé připojíte ke službě HDInsight, může se v klientovi SSH zobrazit upozornění, že pravost hostitele není možné navázat. Po zobrazení výzvy vyberte ano a přidejte hostitele do seznamu důvěryhodných serverů klienta SSH.
Pokud jste se dříve připojili k serveru se stejným názvem, může se zobrazit upozornění, že uložený klíč hostitele neodpovídá klíči hostitele serveru. Informace o odebrání existující položky pro název serveru najdete v dokumentaci pro vašeho klienta SSH.
Klienti SSH
Systémy Linux, Unix a macOS poskytují příkazy ssh
a scp
. Klient ssh
se k vytvoření vzdálené relace příkazového řádku se systémem Linux nebo Unix běžně používá. Klient scp
se používá 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 pro 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ž se tyto klienty dají použít k připojení ke službě HDInsight, proces připojení se liší od použití ssh
nástroje. 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 poskytují snadný způsob zabezpečení přístupu 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šina klientů je možné nakonfigurovat tak, aby používala výchozí klíč. Například klient
ssh
hledá privátní klíč v prostředích Linux a Unix v~/.ssh/id_rsa
.Můžete zadat cestu k privátnímu klíči.
ssh
U klienta-i
se parametr používá k určení cesty k privátnímu klíči. Například:ssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net
.Pokud máte více privátních klíčů pro použití s různými servery, zvažte použití nástroje, jako je ssh-agent (https://en.wikipedia.org/wiki/Ssh-agent). Nástroj
ssh-agent
lze použít k automatickému výběru klíče, který se má použít 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 heslo. Nástroje, jako ssh-agent
je například ukládání hesla do mezipaměti pro vaše pohodlí.
Vytvoření páru klíčů SSH
Pomocí příkazu ssh-keygen
vytvořte soubory pro veřejné a privátní klíče. Následující příkaz vygeneruje 2048bitový pár klíčů RSA, který lze použít se službou HDInsight:
ssh-keygen -t rsa -b 2048
Během procesu vytváření klíče se zobrazí výzva k zadání informací. Například tam, kde jsou klíče uložené, nebo jestli se má použít přístupové heslo. Po dokončení procesu se vytvoří dva soubory; veřejný klíč a privátní klíč.
Veřejný klíč slouží k vytvoření clusteru HDInsight. Veřejný klíč má příponu
.pub
.Privátní klíč slouží k ověření klienta v clusteru HDInsight.
Důležité
Klíče můžete zabezpečit pomocí přístupového hesla. Heslo je ve skutečnosti heslem vašeho privátního klíče. I když někdo získá váš privátní klíč, musí mít přístupové heslo pro použití klíče.
Vytvoření SLUŽBY HDInsight pomocí veřejného klíče
Metoda vytvoření | Jak používat 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 | Použijte parametr -SshPublicKey rutiny New-AzHdinsightCluster a předejte obsah veřejného klíče jako řetězec. |
Azure CLI (příkazový řádek nástroje Azure) |
--sshPublicKey Použijte parametr az hdinsight create příkazu a předejte obsah veřejného klíče jako řetězec. |
Šablona Resource Manageru | Příklad použití klíčů SSH se šablonou najdete v tématu Nasazení SLUŽBY HDInsight v Linuxu s klíčem SSH. Element publicKeys v souboru azuredeploy.json slouží k předání klíčů do Azure při vytváření clusteru. |
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.
Výstraha
Microsoft nedoporučuje používat ověřování heslem pro SSH. Hesla se dají odhadnout a jsou zranitelná vůči útokům hrubou silou. Místo toho doporučujeme pro ověřování používat klíče SSH.
Důležité
Platnost hesla účtu SSH vyprší 70 dní po vytvoření clusteru HDInsight. Pokud platnost hesla vyprší, můžete ho změnit pomocí informací v dokumentu Spravovat HDInsight .
Vytvoření SLUŽBY HDInsight pomocí hesla
Metoda vytvoření | Jak zadat heslo |
---|---|
portál Azure | Ve výchozím nastavení má uživatelský účet SSH stejné heslo jako přihlašovací účet 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 | Pomocí parametru --SshCredential rutiny New-AzHdinsightCluster předejte objekt PSCredential , který obsahuje název a heslo uživatelského účtu SSH. |
Azure CLI (příkazový řádek nástroje Azure) |
--ssh-password Použijte parametr az hdinsight create příkazu a zadejte hodnotu hesla. |
Šablona Resource Manageru | Příklad použití hesla se šablonou najdete v tématu Nasazení SLUŽBY HDInsight v Linuxu s heslem SSH. Element linuxOperatingSystemProfile v souboru azuredeploy.json slouží k předání názvu účtu SSH a hesla do Azure při vytváření clusteru. |
Změna hesla SSH
Informace o změně hesla uživatelského účtu SSH najdete v části Změna hesel v dokumentu Správa služby HDInsight .
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 mohl používat účet domény. Chcete-li provést úpravu konfiguračního souboru sshd:
sudo vi /etc/ssh/sshd_config
zrušení komentáře a změna KerberosAuthentication
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 HDInsight připojeného 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 se pomocí portu 22 připojte k primárnímu hlavnímu uzlu a portu 23 pro připojení k sekundárnímu hlavnímu uzlu. Plně kvalifikovaný název domény, který se má 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, který jste zadali při vytváření edge 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 ověřování certifikátů probíhá automaticky. Pokud pro ověřování použijete pár klíčů SSH a certifikát se nepoužívá automaticky, použijte -i
parametr k určení 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 při připojení k hlavnímu uzlu jako sshuser
, je výzva 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. K nim je možné přistupovat z hlavních uzlů clusteru nebo hraničních uzlů. Níže jsou uvedené obecné kroky pro připojení k jiným uzlům:
Připojení k hlavnímu nebo hraničnímu uzlu pomocí SSH:
ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
Z připojení SSH k hlavnímu nebo hraničnímu uzlu použijte
ssh
příkaz pro připojení k pracovnímu uzlu v clusteru:ssh sshuser@wn0-myhdi
Pokud chcete získat seznam názvů uzlů, podívejte se na dokument Správa HDInsight pomocí rozhraní Apache Ambari REST API.
Pokud je účet SSH zabezpečený pomocí hesla, zadejte heslo při připojování.
Pokud je účet SSH zabezpečený pomocí klíčů SSH, ujistěte se, že je v klientovi povolené předávání SSH.
Poznámka:
Dalším způsobem, jak přímo přistupovat ke všem uzlům v clusteru, je nainstalovat HDInsight do služby Azure Virtual Network. Pak můžete vzdálený počítač připojit ke stejné virtuální síti a přímo přistupovat ke všem uzlům v clusteru.
Další informace najdete v tématu Plánování virtuální sítě pro HDInsight.
Konfigurace předávání agenta SSH
Důležité
Následující kroky předpokládají systém se systémem Linux nebo UNIX a pracují s Bashem ve Windows 10. Pokud tento postup nefunguje pro váš systém, možná budete muset projít dokumentaci ke klientovi SSH.
Pomocí textového editoru otevřete
~/.ssh/config
. Pokud tento soubor neexistuje, můžete ho vytvořit zadánímtouch ~/.ssh/config
na příkazový řádek.Do souboru
config
přidejte následující text.Host <edgenodename>.<clustername>-ssh.azurehdinsight.net ForwardAgent yes
Nahraďte informace o hostiteli adresou uzlu, ke kterému se připojujete pomocí SSH. Předchozí příklad používá hraniční uzel. Tato položka konfiguruje předávání agenta SSH pro zadaný uzel.
Otestujte předává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í, znamená to, že
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 váš privátní klíč uložený v jiném souboru, nahraďte
~/.ssh/id_rsa
cestu k souboru.Připojte se k hraničnímu uzlu clusteru nebo hlavním uzlům pomocí SSH. Pak se pomocí příkazu SSH připojte k pracovnímu uzlu nebo uzlu zookeeper. Připojení se naváže pomocí předávaného klíče.