Csatlakozás a HDInsighthoz (Apache Hadoop) SSH-val

Megtudhatja, hogyan csatlakozhat biztonságosan az Apache Hadoophoz az Azure HDInsightban a Secure Shell (SSH) használatával. A virtuális hálózaton keresztüli csatlakozással kapcsolatos információkért tekintse meg az Azure HDInsight virtuális hálózati architektúrát. Lásd még: Virtuális hálózat üzembe helyezésének megtervezése Azure HDInsight-fürtökhöz.

Az alábbi táblázat tartalmazza a HDInsighthoz SSH-ügyféllel való csatlakozáshoz szükséges címet és portinformációkat:

Cím Kikötő A következőhöz csatlakozik:
<clustername>-ssh.azurehdinsight.net 22 Elsődleges átjárócsomópont
<clustername>-ssh.azurehdinsight.net 23 Másodlagos átjárócsomópont
<edgenodename>.<clustername>-ssh.azurehdinsight.net 22 peremcsomópont (bármely más fürttípus, ha létezik élcsomópont)

Cserélje le a <clustername> elemet a fürt nevére. Cserélje le az <edgenodename> elemet az élcsomópont nevére.

Ha a fürt élcsomópontot tartalmaz, ajánlott az élcsomóponthoz mindig az SSH segítségével kapcsolódni. Az átjárócsomópontok olyan szolgáltatásokat futtatnak, amelyek kritikus fontosságúak a Hadoop állapota szempontjából. Az élcsomópont csak azt futtatja, amit Ön telepít rá. Az élcsomópontok használatával kapcsolatban további információért lásd: Élcsomópontok használata a HDInsightban.

Tipp.

Amikor első alkalommal csatlakozik a HDInsighthoz, az SSH-ügyfél olyan figyelmeztetést jeleníthet meg, amely szerint a gazdaszámítógép nem hitelesíthető. Amikor a rendszer erre felkéri, válassza a „yes” (igen) lehetőséget ahhoz, hogy a gazdaszámítógép felvegye az SSH-ügyfél megbízható kiszolgálókat tartalmazó listába.

Ha korábban már csatlakozott egy ilyen nevű kiszolgálóhoz, előfordulhat, hogy a rendszer figyelmezteti rá, hogy a tárolt gazdaszámítógép-kulcs nem egyezik meg a kiszolgáló gazdaszámítógép-kulcsával. A kiszolgálónévhez tartozó, meglévő bejegyzés eltávolításához tekintse meg az SSH-ügyfél dokumentációját.

SSH-ügyfelek

Az ssh és scp parancs elérhető a Linux, Unix és macOS rendszerekben. Az ssh-ügyfelet általában arra használják, hogy távoli parancssori munkamenetet hozzon létre Linux vagy Unix rendszerben. Az scp-ügyfél segítségével biztonságosan másolhat fájlokat a saját ügyfél és a távoli rendszer között.

A Microsoft Windows alapértelmezés szerint nem telepít SSH-ügyfeleket. Az ssh- és az scp-ügyfél az alábbi csomagokban érhető el a Windows rendszerhez:

Számos grafikus SSH-ügyfél is létezik, például a PuTTY és a MobaXterm. Bár ezek az ügyfelek használhatók a HDInsighthoz történő kapcsolódáshoz, a kapcsolódás folyamata más, mint az ssh segédprogram használatakor. További információkért tekintse meg a használt grafikus ügyfél dokumentációját.

Hitelesítés: SSH-kulcsok

Az SSH-kulcsok nyilvános kulcsú titkosítást használnak az SSH-munkamenetek hitelesítéséhez. Az SSH-kulcsok biztonságosabbak a jelszavaknál, és egyszerű módszert kínálnak a Hadoop-fürt biztonságos elérésére.

Ha az SSH-fiókja kulccsal van védve, az ügyfélnek meg kell adnia az egyező titkos kulcsot, amikor csatlakozik:

  • A legtöbb ügyfél konfigurálható alapértelmezett kulcs használatára. Az ssh-ügyfél például a titkos kulcsot a ~/.ssh/id_rsa helyen keresi Linux- és Unix-környezetekben.

  • Megadhatja egy titkos kulcs elérési útját. Az ssh-ügyfél esetében az -i paraméterrel adható meg a titkos kulcs elérési útja. Például: ssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net.

  • Ha több titkos kulccsal rendelkezik, amelyeket különböző kiszolgálókhoz használ, fontolja meg az olyan segédprogramok használatát, mint például az ssh-ügynök (https://en.wikipedia.org/wiki/Ssh-agent). Az ssh-agent segédprogram segítségével automatikusan választhatja ki a kulcsot az SSH-munkamenet megkezdéséhez.

Fontos

Ha jelszóval védi a titkos kulcsot, a kulcs használatakor be kell írnia a jelszót. Az ssh-agent és hasonló segédprogramokkal a kényelmes használat érdekében gyorsítótárazhatja a jelszót.

SSH-kulcs létrehozása

Az ssh-keygen paranccsal hozhat létre nyilvános- és titkoskulcs-fájlokat. A következő parancs egy 2048 bites RSA-kulcspárt hoz létre, amely a HDInsighttal használható:

ssh-keygen -t rsa -b 2048

A rendszer a kulcslétrehozási folyamat során információkat kér. Például a kulcsok tárolási helyét kell megadnia, vagy azt, hogy használ-e jelszót. A folyamat befejezése után két fájl jön létre; egy nyilvános kulcs és egy titkos kulcs.

  • A nyilvános kulccsal hozható létre a HDInsight-fürt. A nyilvános kulcs kiterjesztése .pub.

  • A titkos kulccsal hitelesíthető az ügyfél a HDInsight-fürtön.

Fontos

A kulcsokat jelszóval védheti. Ez a jelszó lényegében egy kód a titkos kulcson. Ilyen esetekben még ha valaki meg is szerzi a titkos kulcsát, a jelszóra is szüksége van a kulcs használatához.

HDInsight létrehozása a nyilvános kulccsal

Létrehozási metódus A nyilvános kulcs használata
Azure Portal Törölje a jelet A fürt bejelentkezési jelszavának használata az SSH-hoz, majd válassza a Nyilvános kulcs lehetőséget SSH-hitelesítési típusként. Végül jelölje ki a nyilvános kulcsfájlt, vagy illessze be a fájl szöveges tartalmát az SSH nyilvános kulcs mezőjébe.
SSH public key dialog in HDInsight cluster creation.
Azure PowerShell Használja a -SshPublicKeyNew-AzHdinsightCluster parancsmag paraméterét, és sztringként adja át a nyilvános kulcs tartalmát.
Azure CLI Az az hdinsight create parancs --sshPublicKey paraméterével illesztheti be a nyilvános kulcs tartalmát sztringként.
Resource Manager-sablon Az SSH-kulcsok sablonnal történő használatának példájáért tekintse meg a HDInsight Linux rendszeren, SSH-kulccsal való telepítéséről szóló témakört. Az azuredeploy.json fájlban lévő publicKeys elemmel illeszthetők be a kulcsok az Azure-ba a fürt létrehozásakor.

Hitelesítés: Jelszó

Az SSH-fiókok jelszóval védhetők. Amikor SSH használatával csatlakozik a HDInsighthoz, a rendszer kéri a jelszó megadását.

Figyelmeztetés

A Microsoft nem javasolja jelszavas hitelesítés használatát az SSH-hoz. A jelszavakat ki lehet találni, és védtelenek a találgatásos támadásokkal szemben. Ehelyett azt javasoljuk, hogy használjon SSH-kulcsokat a hitelesítéshez.

Fontos

Az SSH-fiók jelszava 70 nappal a HDInsight-fürt létrehozása után jár le. Ha a jelszó lejár, a HDInsight kezelése dokumentumban foglaltak szerint módosíthatja.

HDInsight létrehozása jelszóval

Létrehozási metódus Jelszó megadása
Azure Portal Alapértelmezés szerint az SSH-felhasználói fióknak ugyanaz a jelszava, mint a fürt bejelentkezési fiókjának. Ha másik jelszót szeretne használni, törölje a jelet az SSH fürt bejelentkezési jelszavának használata jelölőnégyzetből, majd írja be a jelszót az SSH jelszó mezőjébe.
SSH password dialog in HDInsight cluster creation.
Azure PowerShell Használja a --SshCredentialNew-AzHdinsightCluster parancsmag paraméterét, és adjon át egy PSCredential objektumot, amely tartalmazza az SSH-felhasználói fiók nevét és jelszavát.
Azure CLI Az az hdinsight create parancs --ssh-password paraméterével adja meg a jelszó értékét.
Resource Manager-sablon A jelszavak sablonnal történő használatának példájáért tekintse meg a HDInsight Linux rendszeren, SSH-kulccsal való telepítéséről szóló témakört. Az azuredeploy.json fájlban lévő linuxOperatingSystemProfile elemmel illeszthető be az SSH-fióknév és -jelszó az Azure-ba a fürt létrehozásakor.

Az SSH-jelszó módosítása

Az SSH-felhasználói fiók jelszavának módosításával kapcsolatos információért tekintse meg a HDInsight kezelése dokumentum Jelszavak módosítása szakaszát.

Hitelesítési tartományhoz csatlakoztatott HDInsight

Ha tartományhoz csatlakoztatott HDInsight-fürtöt használ, a parancsot az kinit SSH helyi felhasználójával való csatlakozás után kell használnia. Ez a parancssor tartományi felhasználót és jelszót kér, és hitelesíti a munkamenetet a fürthöz társított Microsoft Entra-tartománnyal.

A Kerberos-hitelesítést az egyes tartományhoz csatlakoztatott csomópontokon (például a fő csomóponton, az élcsomóponton) is engedélyezheti, hogy a tartományi fiók használatával ssh-t használjon. Ehhez szerkessze az sshd config fájlt:

sudo vi /etc/ssh/sshd_config

távolítsa el a megjegyzéseket, a KerberosAuthentication értékét pedig állítsa a következőre: yes

sudo service sshd restart

A parancs használatával klist ellenőrizze, hogy a Kerberos-hitelesítés sikeres volt-e.

További információkat itt talál: Tartományhoz csatlakoztatott HDInsight konfigurálása.

Csatlakozás csomópontokhoz

A fő csomópontok és a peremcsomópont (ha van ilyen) az interneten keresztül érhető el a 22-23-ai porton.

  • Az átjárócsomópontokhoz való csatlakozás során az elsődleges átjárócsomóponthoz való csatlakozáshoz használja a 22-es portot, a másodlagos átjárócsomóponthoz való csatlakozáshoz pedig a 23-as portot. A használandó teljes tartománynév a clustername-ssh.azurehdinsight.net, ahol a clustername a fürt neve.

    # 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
    
  • Az élcsomóponthoz való csatlakozáskor használja a 22-es portot. A teljes tartománynév az edgenodename.clustername-ssh.azurehdinsight.net, ahol az edgenodename az élcsomópont létrehozásakor megadott név. A clustername a fürt neve.

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

Fontos

Az előző példák azt feltételezik, hogy jelszavas hitelesítést használ, vagy automatikus tanúsítványalapú hitelesítés történik. Ha SSH-kulcspárt használ a hitelesítéshez, és a tanúsítvány használata nem automatikus, az -i paraméterrel adja meg a titkos kulcsot. Például: ssh -i ~/.ssh/mykey sshuser@clustername-ssh.azurehdinsight.net.

A csatlakozás után a parancssor megváltozik, hogy jelezze az SSH-felhasználónevet és a csomópontot, amelyhez csatlakozik. Ha például az sshuser felhasználóként csatlakozik az elsődleges átjárócsomóponthoz, a parancssor az sshuser@<active-headnode-name>:~$.

Csatlakozás feldolgozói és Apache Zookeeper-csomópontokhoz

A feldolgozó csomópontok és a Zookeeper-csomópontok nem érhetők el közvetlenül az internetről. hanem a fürt átjáró- vagy élcsomópontjain keresztül érhetők el. A következő általános lépésekkel csatlakozhat más csomópontokhoz:

  1. Az SSH-val csatlakozzon egy átjáró- vagy élcsomóponthoz:

    ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
    
  2. Az átjáró- vagy élcsomópont felé fennálló SSH-kapcsolatból használja az ssh parancsot a fürt egyik munkavégző csomópontjához való csatlakozáshoz:

    ssh sshuser@wn0-myhdi
    

    A csomópontnevek listájának lekéréséhez tekintse meg a HDInsight kezelését az Apache Ambari REST API-dokumentum használatával.

Ha az SSH-fiókot jelszó védi, a kapcsolódáshoz adja meg a jelszót.

Ha az SSH-fiókot SSH-kulcsok védik, győződjön meg róla, hogy az SSH-továbbítás engedélyezve van az ügyfélen.

Feljegyzés

A fürtben lévő összes csomópont közvetlen elérésének másik módja, ha a HDInsightot Azure virtuális hálózatra telepíti. Ezután csatlakoztathatja a távoli gépet ugyanehhez a virtuális hálózathoz, és közvetlenül érheti el a fürtben lévő összes csomópontot.

További információt a HDInsight virtuális hálózatának tervezése című témakörben talál.

SSH-ügynöktovábbítás konfigurálása

Fontos

A következő lépések Linux vagy UNIX-alapú rendszert feltételeznek, és a Windows 10-en futó Bash-környezet esetén működnek. Ha a lépések nem működnek a rendszerén, lehet, hogy át kell tekintenie az SSH-ügyfél dokumentációját.

  1. Egy szövegszerkesztővel nyissa meg a ~/.ssh/config fájlt. Ha a fájl nem létezik, létrehozhatja a parancssoron az touch ~/.ssh/config karakterlánc beírásával.

  2. Adja hozzá a következő szöveget az config fájlhoz.

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

    Cserélje le a Gazda információit azon csomópont címére, amelyet SSH-val csatlakoztat. Az előző példa az élcsomópontot használja. Ez a bejegyzés konfigurálja az SSH-ügynöktovábbítást az adott csomópont számára.

  3. Tesztelje az SSH-ügynöktovábbítást a terminálból a következő parancs segítségével:

    echo "$SSH_AUTH_SOCK"
    

    Ez a parancs az alábbi szöveghez hasonló információt ad vissza:

    /tmp/ssh-rfSUL1ldCldQ/agent.1792
    

    Ha semmit nem ad vissza, akkor ssh-agent nem fut.

  4. Miután ellenőrizte, hogy az ssh-ügynök fut-e, az alábbiak segítségével adja hozzá az SSH titkos kulcsát az ügynökhöz:

    ssh-add ~/.ssh/id_rsa
    

    Ha a titkos kulcsot egy másik fájl tárolja, a ~/.ssh/id_rsa részt cserélje ki a fájl elérési útjára.

  5. Csatlakozzon a fürt élcsomópontjához vagy átjárócsomópontjaihoz SSH-val. Ezután az SSH-paranccsal csatlakozzon egy feldolgozó vagy Zookeeper-csomóponthoz. A kapcsolat létrejön a továbbított kulccsal.

Következő lépések