Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Leer hoe u Secure Shell (SSH) gebruikt om veilig verbinding te maken met Apache Hadoop in Azure HDInsight. Zie de architectuur van het virtuele Azure HDInsight-netwerk voor meer informatie over het maken van verbinding via een virtueel netwerk. Zie ook een implementatie van een virtueel netwerk plannen voor Azure HDInsight-clusters.
De volgende tabel bevat de adres- en poortgegevens die nodig zijn bij het maken van verbinding met HDInsight met behulp van een SSH-client:
| Adres | Poort | Maakt verbinding met... | 
|---|---|---|
| <clustername>-ssh.azurehdinsight.net | 22 | Primair hoofdknooppunt | 
| <clustername>-ssh.azurehdinsight.net | 23 | Secundair hoofdknooppunt | 
| <edgenodename>.<clustername>-ssh.azurehdinsight.net | 22 | edge-knooppunt (elk ander clustertype, als er een edge-knooppunt bestaat) | 
Vervang <clustername> door de naam van uw cluster. Vervang <edgenodename> door de naam van het edge-knooppunt.
Als uw cluster een edge-knooppunt bevat, raden we u aan altijd verbinding te maken met het edge-knooppunt met behulp van SSH. De hoofdknooppunten hosten services die essentieel zijn voor de status van Hadoop. Het Edge-knooppunt voert alleen uit wat u erop zet. Zie Edge-knooppunten gebruiken in HDInsight voor meer informatie over het gebruik van edge-knooppunten.
Hint
Wanneer u voor het eerst verbinding maakt met HDInsight, geeft uw SSH-client mogelijk een waarschuwing weer dat de echtheid van de host niet tot stand kan worden gebracht. Wanneer u hierom wordt gevraagd, selecteert u Ja om de host toe te voegen aan de lijst met vertrouwde servers van uw SSH-client.
Als u eerder verbinding hebt gemaakt met een server met dezelfde naam, ontvangt u mogelijk een waarschuwing dat de opgeslagen hostsleutel niet overeenkomt met de hostsleutel van de server. Raadpleeg de documentatie voor uw SSH-client over het verwijderen van de bestaande vermelding voor de servernaam.
SSH-clients
Linux-, Unix- en macOS-systemen bieden de ssh en scp opdrachten. De ssh client wordt vaak gebruikt voor het maken van een externe opdrachtregelsessie met een Linux- of Unix-systeem. De scp client wordt gebruikt om bestanden veilig te kopiëren tussen uw client en het externe systeem.
Microsoft Windows installeert standaard geen SSH-clients. De ssh clients en scp clients zijn beschikbaar voor Windows via de volgende pakketten:
- OpenSSH-client. Deze client is een optionele functie die is geïntroduceerd in de Windows 10 Fall Creators Update. 
- Azure Cloud Shell. Cloud Shell biedt een Bash-omgeving in uw browser. 
- Git. 
Er zijn ook verschillende grafische SSH-clients, zoals PuTTY en MobaXterm. Hoewel deze clients kunnen worden gebruikt om verbinding te maken met HDInsight, is het proces van verbinding anders dan het ssh hulpprogramma. Zie de documentatie van de grafische client die u gebruikt voor meer informatie.
Verificatie: SSH-sleutels
SSH-sleutels maken gebruik van openbare-sleutelcryptografie om SSH-sessies te verifiëren. SSH-sleutels zijn veiliger dan wachtwoorden en bieden een eenvoudige manier om toegang tot uw Hadoop-cluster te beveiligen.
Als uw SSH-account is beveiligd met behulp van een sleutel, moet de client de overeenkomende persoonlijke sleutel opgeven wanneer u verbinding maakt:
- De meeste clients kunnen worden geconfigureerd voor het gebruik van een standaardsleutel. De - sshclient zoekt bijvoorbeeld naar een persoonlijke sleutel in- ~/.ssh/id_rsaLinux- en Unix-omgevingen.
- U kunt het pad naar een persoonlijke sleutel opgeven. Met de - sshclient wordt de- -iparameter gebruikt om het pad naar de persoonlijke sleutel op te geven. Bijvoorbeeld:- ssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net.
- Als u meerdere persoonlijke sleutels hebt voor gebruik met verschillende servers, kunt u overwegen een hulpprogramma zoals ssh-agent (https://en.wikipedia.org/wiki/Ssh-agent). Het - ssh-agenthulpprogramma kan worden gebruikt om automatisch de sleutel te selecteren die moet worden gebruikt bij het tot stand brengen van een SSH-sessie.
Belangrijk
Als u uw persoonlijke sleutel beveiligt met een wachtwoordzin, moet u de wachtwoordzin invoeren wanneer u de sleutel gebruikt. Hulpprogramma's zoals ssh-agent kunnen het wachtwoord voor uw gemak in de cache opslaan.
Een SSH-sleutelpaar maken
Gebruik de ssh-keygen opdracht om bestanden met een openbare en persoonlijke sleutel te maken. Met de volgende opdracht wordt een 2048-bits RSA-sleutelpaar gegenereerd dat kan worden gebruikt met HDInsight:
ssh-keygen -t rsa -b 2048
Tijdens het maken van de sleutel wordt u gevraagd om informatie te geven. Bijvoorbeeld wanneer de sleutels worden opgeslagen of een wachtwoordzin moet worden gebruikt. Nadat het proces is voltooid, worden er twee bestanden gemaakt; een openbare sleutel en een persoonlijke sleutel.
- De openbare sleutel wordt gebruikt om een HDInsight-cluster te maken. De openbare sleutel heeft een extensie van - .pub.
- De persoonlijke sleutel wordt gebruikt om uw client te verifiëren bij het HDInsight-cluster. 
Belangrijk
U kunt uw sleutels beveiligen met behulp van een wachtwoordzin. Een wachtwoordzin is in feite een wachtwoord voor uw persoonlijke sleutel. Zelfs als iemand uw persoonlijke sleutel verkrijgt, moet deze de wachtwoordzin hebben om de sleutel te kunnen gebruiken.
HDInsight maken met behulp van de openbare sleutel
| Methode van aanmaak | De openbare sleutel gebruiken | 
|---|---|
| Azure Portal | Schakel het selectievakje Clusteraanmeldingswachtwoord voor SSH gebruiken uit en selecteer vervolgens Openbare sleutel als het SSH-verificatietype. Selecteer ten slotte het openbare-sleutelbestand of plak de tekstinhoud van het bestand in het veld openbare SSH-sleutel .   | 
| Azure PowerShell | Gebruik de -SshPublicKeyparameter van de cmdlet New-AzHdinsightCluster en geef de inhoud van de openbare sleutel door als een tekenreeks. | 
| Azure-opdrachtregelinterface (CLI) | Gebruik de --sshPublicKeyparameter van deaz hdinsight createopdracht en geef de inhoud van de openbare sleutel door als een tekenreeks. | 
| Resourcebeheerder-sjabloon | Zie HDInsight implementeren in Linux met SSH-sleutel voor een voorbeeld van het gebruik van SSH-sleutels met een sjabloon. Het publicKeyselement in het azuredeploy.json-bestand  wordt gebruikt om de sleutels door te geven aan Azure bij het maken van het cluster. | 
Verificatie: wachtwoord
SSH-accounts kunnen worden beveiligd met behulp van een wachtwoord. Wanneer u via SSH verbinding maakt met HDInsight, wordt u gevraagd het wachtwoord in te voeren.
Waarschuwing
Microsoft raadt het gebruik van wachtwoordverificatie voor SSH niet aan. Wachtwoorden kunnen worden geraden en zijn kwetsbaar voor beveiligingsaanvallen. In plaats daarvan raden we u aan om SSH-sleutels te gebruiken voor verificatie.
Belangrijk
Het wachtwoord voor het SSH-account verloopt 70 dagen nadat het HDInsight-cluster is gemaakt. Als uw wachtwoord verloopt, kunt u dit wijzigen met behulp van de informatie in het HDInsight-document beheren .
HDInsight maken met een wachtwoord
| Methode van aanmaak | Het wachtwoord opgeven | 
|---|---|
| Azure Portal | Het SSH-gebruikersaccount heeft standaard hetzelfde wachtwoord als het aanmeldingsaccount voor het cluster. Als u een ander wachtwoord wilt gebruiken, schakelt u Het aanmeldingswachtwoord van het cluster voor SSH uit en voert u het wachtwoord in het veld SSH-wachtwoord in.   | 
| Azure PowerShell | Gebruik de --SshCredentialparameter van de cmdlet New-AzHdinsightCluster en geef eenPSCredentialobject door dat de naam en het wachtwoord van het SSH-gebruikersaccount bevat. | 
| Azure-opdrachtregelinterface (CLI) | Gebruik de --ssh-passwordparameter van deaz hdinsight createopdracht en geef de wachtwoordwaarde op. | 
| Resource Manager-sjabloon | Zie HDInsight implementeren in Linux met een SSH-wachtwoord voor een voorbeeld van het gebruik van een wachtwoord met een sjabloon. Het linuxOperatingSystemProfileelement in het azuredeploy.json-bestand  wordt gebruikt om de SSH-accountnaam en het wachtwoord door te geven aan Azure bij het maken van het cluster. | 
Het SSH-wachtwoord wijzigen
Zie de sectie Wachtwoorden wijzigen van het HDInsight-document beheren voor meer informatie over het wijzigen van het wachtwoord voor het SSH-gebruikersaccount.
Gekoppeld aan het authenticatiedomein HDInsight
Als u een HDInsight-cluster gebruikt dat lid is van een domein, moet u de opdracht gebruiken nadat u verbinding hebt gemaakt met de kinit lokale SSH-gebruiker. Met deze opdracht wordt u om een domeingebruiker en wachtwoord gevraagd en wordt uw sessie geverifieerd met het Microsoft Entra-domein dat is gekoppeld aan het cluster.
U kunt kerberos-verificatie ook inschakelen op elk domeinknooppunt (bijvoorbeeld hoofdknooppunt, edge-knooppunt) om ssh te gebruiken met behulp van het domeinaccount. Ga als volgt te werk om dit configuratiebestand voor sshd te bewerken:
sudo vi /etc/ssh/sshd_config
opmerking ongedaan maken en wijzigen KerberosAuthentication in yes
sudo service sshd restart
Gebruik klist de opdracht om te controleren of de Kerberos-verificatie is geslaagd.
Zie Domein-gekoppelde HDInsight configureren voor meer informatie.
Verbinding maken met knooppunten
De hoofdknooppunten en het edge-knooppunt (indien aanwezig) kunnen worden geopend via internet op poorten 22 en 23.
- Wanneer u verbinding maakt met de hoofdknooppunten, gebruikt u poort 22 om verbinding te maken met het primaire hoofdknooppunt en poort 23 om verbinding te maken met het secundaire hoofdknooppunt. De volledig gekwalificeerde domeinnaam die moet worden gebruikt, is - clustername-ssh.azurehdinsight.net, waar- clusternameis de naam van uw cluster.- # 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
- Gebruik poort 22 wanneer u verbinding maakt met het Edge-knooppunt. De volledig gekwalificeerde domeinnaam is - edgenodename.clustername-ssh.azurehdinsight.net, waarbij u- edgenodenameeen naam hebt opgegeven bij het maken van het edge-knooppunt.- clusternameis de naam van het cluster.- # Connect to edge node ssh sshuser@edgnodename.clustername-ssh.azurehdinsight.net
Belangrijk
In de vorige voorbeelden wordt ervan uitgegaan dat u wachtwoordverificatie gebruikt of dat certificaatverificatie automatisch plaatsvindt. Als u een SSH-sleutelpaar gebruikt voor verificatie en het certificaat niet automatisch wordt gebruikt, gebruikt u de -i parameter om de persoonlijke sleutel op te geven. Bijvoorbeeld: ssh -i ~/.ssh/mykey sshuser@clustername-ssh.azurehdinsight.net.
Zodra de verbinding is gemaakt, wordt de prompt gewijzigd om de SSH-gebruikersnaam en het knooppunt aan te geven waaraan u bent verbonden. Als u bijvoorbeeld verbinding maakt met het primaire hoofdknooppunt als sshuser, is de prompt sshuser@<active-headnode-name>:~$.
Verbinding maken met workerknooppunten en Apache Zookeeper-knooppunten
De werkknooppunten en Zookeeper-knooppunten zijn niet rechtstreeks toegankelijk vanaf internet. Ze kunnen worden geopend vanaf de hoofdknooppunten of edge-knooppunten van het cluster. Hier volgen de algemene stappen om verbinding te maken met andere knooppunten:
- SSH gebruiken om verbinding te maken met een hoofd- of edge-knooppunt: - ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
- Gebruik vanuit de SSH-verbinding met het hoofd- of edge-knooppunt de - sshopdracht om verbinding te maken met een werkknooppunt in het cluster:- ssh sshuser@wn0-myhdi- Als u een lijst met de knooppuntnamen wilt ophalen, raadpleegt u hdInsight beheren met behulp van het Apache Ambari REST API-document . 
Als het SSH-account is beveiligd met een wachtwoord, voert u het wachtwoord in wanneer u verbinding maakt.
Als het SSH-account is beveiligd met behulp van SSH-sleutels, moet u ervoor zorgen dat SSH-doorsturen is ingeschakeld op de client.
Opmerking
Een andere manier om rechtstreeks toegang te krijgen tot alle knooppunten in het cluster, is door HDInsight te installeren in een virtueel Azure-netwerk. Vervolgens kunt u uw externe machine koppelen aan hetzelfde virtuele netwerk en rechtstreeks toegang krijgen tot alle knooppunten in het cluster.
Zie Een virtueel netwerk plannen voor HDInsight voor meer informatie.
Doorsturen van SSH-agent configureren
Belangrijk
Bij de volgende stappen wordt ervan uitgegaan dat een Linux- of UNIX-systeem werkt met Bash in Windows 10. Als deze stappen niet werken voor uw systeem, moet u mogelijk de documentatie voor uw SSH-client raadplegen.
- Gebruik een teksteditor, open - ~/.ssh/config. Als dit bestand niet bestaat, kunt u het maken door het in te voeren- touch ~/.ssh/configop een opdrachtregel.
- Voeg de volgende tekst toe aan het bestand - config.- Host <edgenodename>.<clustername>-ssh.azurehdinsight.net ForwardAgent yes- Vervang de hostgegevens door het adres van het knooppunt waarmee u verbinding maakt met behulp van SSH. In het vorige voorbeeld wordt het Edge-knooppunt gebruikt. Met deze vermelding configureert u het doorsturen van de SSH-agent voor het opgegeven knooppunt. 
- Test het doorsturen van de SSH-agent met behulp van de volgende opdracht vanuit de terminal: - echo "$SSH_AUTH_SOCK"- Met deze opdracht wordt informatie geretourneerd die lijkt op de volgende tekst: - /tmp/ssh-rfSUL1ldCldQ/agent.1792- Als er niets wordt geretourneerd, dan wordt - ssh-agentniet gestart.
- Nadat u hebt gecontroleerd of ssh-agent wordt uitgevoerd, gebruikt u het volgende om uw persoonlijke SSH-sleutel toe te voegen aan de agent: - ssh-add ~/.ssh/id_rsa- Als uw persoonlijke sleutel is opgeslagen in een ander bestand, vervangt u - ~/.ssh/id_rsahet pad naar het bestand.
- Maak verbinding met het edge-knooppunt of hoofdknooppunt van het cluster met behulp van SSH. Gebruik vervolgens de SSH-opdracht om verbinding te maken met een werkernode of een zookeep-knooppunt. De verbinding wordt tot stand gebracht met behulp van de doorgestuurde sleutel.