Sdílet prostřednictvím


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 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ů:

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 .
Dialogové okno veřejného klíče SSH při vytváření clusteru HDInsight
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 .
Dialogové okno s heslem SSH při vytváření clusteru HDInsight
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, kde clustername 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, kde edgenodename 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:

  1. Připojení k hlavnímu nebo hraničnímu uzlu pomocí SSH:

    ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
    
  2. 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.

  1. Pomocí textového editoru otevřete ~/.ssh/config. Pokud tento soubor neexistuje, můžete ho vytvořit zadáním touch ~/.ssh/config na příkazový řádek.

  2. 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.

  3. 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ěží.

  4. 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.

  5. 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.

Další kroky