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:
OpenSSH-ügyfél. Ez az ügyfél egy választható funkció, amelyet a Windows 10 Fall Creators Update tartalmaz.
Bash az Ubuntu-on Windows 10 rendszeren.
Azure Cloud Shell. A Cloud Shell Bash-környezetet biztosít a böngészőben.
Git.
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. |
Azure PowerShell | Használja a -SshPublicKey New-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. |
Azure PowerShell | Használja a --SshCredential New-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 aclustername
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 azedgenodename
az élcsomópont létrehozásakor megadott név. Aclustername
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:
Az SSH-val csatlakozzon egy átjáró- vagy élcsomóponthoz:
ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
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.
Egy szövegszerkesztővel nyissa meg a
~/.ssh/config
fájlt. Ha a fájl nem létezik, létrehozhatja a parancssoron aztouch ~/.ssh/config
karakterlánc beírásával.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.
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.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.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.