Verbinding maken met Linux-instanties

Deze handleiding laat u zien hoe u verbinding maakt met Linux-instanties door gebruik te maken van standaard SSH-tools op werkstations met Linux, OSX en Windows. Als u verbinding moet maken met een Windows-instantie, gebruikt u in plaats hiervan RDP (Remote Desktop Protocol).

De makkelijkste manier om verbinding te maken met een Linux-instantie op Compute Engine is verbinden vanuit uw browser of verbinden via van de gcloud-tool.

U kunt er ook voor kiezen om een nieuw sleutelpaar te maken en toe te passen op uw project, wat u de mogelijkheid biedt om verbinding te maken met behulp van tools van derden. U kunt bijvoorbeeld verbinding maken met SSH op werkstations met Linux of OSX of verbinding maken met PuTTY op werkstations met Windows.

Bekijk SSH-sleutelbeheer automatiseren als u een gevorderde gebruiker bent en SSH-sleutelbeheer moet automatiseren of openbare SSH-sleutels alleen voor specifieke instanties moet instellen.

Voordat u begint

Verbinden met een instantie via uw browser

Direct met SSH via uw webbrowser in de Google Cloud Platform-console:

  1. In the Cloud Console, go to the VM instances page.

    Go to the VM instances page

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

Er gelden enkele waarschuwingen wanneer u verbinding maakt met instanties via de browser. Bekijk SSH via de browser voor meer informatie.

Verbinden met een instantie via de opdrachtregel

U kunt de gcloud-opdrachtregeltool gebruiken om gemakkelijk verbinding te maken met uw Linux-instanties. De gcloud-tool beheert uw SSH-sleutels door wanneer u dit nodig heeft nieuwe projectbrede SSH-sleutels te genereren en toe te passen.

Gebruik de opdracht gcloud compute ssh om verbinding te maken met uw instantie:

gcloud compute ssh [INSTANCE_NAME]

waarbij [INSTANCE_NAME] de naam van de instantie is.

U kunt nu de terminal gebruiken om opdrachten uit te voeren op uw Linux-instantie. Wanneer u klaar bent, gebruikt u de opdracht exit om de verbinding met de instantie te verbreken.

Een nieuw SSH-sleutelpaar genereren

Voordat u met SSH of SCP toegang kunt krijgen tot uw instanties, moet u een nieuw SSH-sleutelpaar genereren en de openbare SSH-sleutel toepassen op uw instantie of project. Als u al verbinding heeft gemaakt met een instantie met de gcloud-tool, zijn uw sleutels al toegepast en beschikbaar op de volgende locaties:

  • Linux en OSX
    • Openbare sleutel: $HOME/.ssh/google_compute_engine.pub
    • Privésleutel: $HOME/.ssh/google_compute_engine
  • Windows:
    • Openbare sleutel: C:\Users\[USERNAME]\.ssh\google_compute_engine.pub
    • Privésleutel: C:\Users\[USERNAME]\.ssh\google_compute_engine

waarbij [USERNAME] uw gebruikersnaam op uw lokale werkstation is.

U kunt er ook voor kiezen om uw eigen sleutelparen handmatig te genereren en deze toe te passen op uw project:

Linux en OSX

Om een nieuw SSH-sleutelpaar te genereren op werkstations met Linux of OSX en deze toe te passen op uw project, doet u het volgende:

  1. Open een terminal op uw werkstation en gebruik de opdracht ssh-keygen om een nieuw sleutelpaar te genereren. Geef de vlag -C op, om een opmerking toe te voegen met de gebruikersnaam op de instantie voor wie de sleutel wordt toegepast. Het voorbeeld maakt een privésleutel genaamd my-ssh-key en een openbaar sleutelbestand genaamd my-ssh-key.pub.

    ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C [USERNAME]
    

    waarbij [USERNAME] de instantiegebruiker is, voor wie u de sleutel toepast. Als de gebruiker niet bestaat op de instantie, maakt Compute Engine deze automatisch aan met de gebruikersnaam die u in deze opdracht opgeeft.

  2. Beperk de toegang tot uw my-ssh-key-privésleutel, zodat u de enige bent die deze kan lezen en niemand naar deze kan schrijven.

    chmod 400 ~/.ssh/my-ssh-key
    
  3. Ga naar de pagina met metadata voor uw project.

    Ga naar de pagina Metadata

  4. Klik op SSH-sleutels om een lijst met projectbrede, openbare SSH-sleutels weer te geven.

  5. Klik op de knop Bewerken om de openbare SSH-sleutels in uw project aan te passen.

  6. Gebruik de opdracht cat om de inhoud van het openbare sleutelbestand ~/.ssh/my-ssh-key.pub op te halen.

    cat ~/.ssh/my-ssh-key.pub
    

    De terminal geeft uw openbare sleutel op de volgende manier weer:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    waarbij:

    • [KEY_VALUE] de gegenereerde openbare sleutelwaarde is.
    • [USERNAME] de gebruiker op de instantie is, voor wie u de sleutel toepast.
  7. Kopieer de uitvoer van de opdracht cat en plak deze als een nieuw item in de lijst met SSH-sleutels.

  8. Klik onderaan de pagina SSH-sleutels op Opslaan om uw nieuwe projectbrede SSH-sleutel op te slaan.

De openbare sleutel is nu zo ingesteld, dat deze werkt op alle instanties in uw project. Gebruik de opdracht ssh om verbinding te maken met uw instanties.

Windows

Windows heeft geen ingebouwde tool om SSH-sleutelparen te genereren, dus als u gebruikmaakt van een werkstation met Windows, moet u een tool van derden gebruiken om SSH-sleutelparen te genereren. Wij beschrijven hier hoe u SSH-sleutelparen kunt genereren met de PuTTYgen-tool en deze sleutelparen kunt toepassen op uw project.

Om op werkstations met Windows met PuTTYgen een nieuw SSH-sleutelpaar te genereren en toe te passen op uw project, doet u het volgende:

  1. Download puttygen.exe.

  2. Voer PuTTYgen uit. Voer voor dit voorbeeld gewoon het door u gedownloade bestand puttygen.exe uit. Er wordt een venster geopend, waarin u uw instellingen voor het genereren van een sleutel kunt configureren.

  3. Klik op de knop Generate (Genereren) om een nieuw sleutelpaar te genereren. In de meeste gevallen voldoen de standaardparameters, maar u moet een sleutel genereren met ten minste 2048 bits. Wanneer u klaar bent met het genereren van het sleutelpaar, toont de tool uw openbare sleutelwaarde.

  4. Vervang in de sectie Key comment (Sleutelopmerking) de bestaande tekst door de gebruikersnaam van de gebruiker op de instantie voor wie u de sleutel toepast.

  5. Voer optioneel een Key passphrase (Sleutelwachtwoordzin) in om uw sleutel te beschermen.

  6. Klik op Save private key (Privésleutel opslaan) om de privésleutel op te slaan in een bestand. Sla voor dit voorbeeld de privésleutel op als my-ssh-key.ppk.

  7. Klik op Save public key (Openbare sleutel opslaan) om uw openbare sleutel te schrijven naar een bestand voor later gebruik. Sla voor dit voorbeeld de openbare sleutel op als my-ssh-key. Houd voor nu het PuTTYgen-venster geopend.

  8. Ga naar de sectie SSH-sleutels van de metadatapagina voor uw project.

    Ga naar de pagina Metadata

  9. Klik op de knop Bewerken om de projectbrede, openbare SSH-sleutels aan te passen.

  10. Kopieer de volledige openbare sleutelwaarde uit de PuTTYgen-tool en plak deze waarde als een nieuw item in de lijst met SSH-sleutels op de pagina Metadata. U vindt de openbare sleutelwaarde bovenaan het PuTTYgen-scherm:

    Screenshot van openbare sleutel PuTTYgen

    Deze openbare sleutel heeft de volgende structuur:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    waarbij:

    • [KEY_VALUE] de door u gegenereerde sleutelwaarde is.
    • [USERNAME] de gebruiker op de instantie is, voor wie u de sleutel toepast.
  11. Klik onderaan de pagina SSH-sleutels op Opslaan om uw nieuwe projectbrede SSH-sleutel op te slaan.

De openbare sleutel is nu zo ingesteld, dat deze werkt op alle instanties in uw project. Gebruik PuTTY om verbinding te maken met uw instanties.

Verbinding maken via SSH op werkstations met Linux of OSX

Om verbinding te maken met uw instanties via SSH, doet u het volgende:

  1. Als u nog geen openbare sleutel heeft toegepast op uw Cloud Platform-consoleproject, moet u een nieuw sleutelpaar genereren en deze toepassen op uw project.

  2. Zoek in de console het externe IP-adres op voor de instantie waar u verbinding mee wilt maken. Ga naar de lijst met uw instanties.

    Ga naar de pagina Instanties

  3. Gebruik de opdracht ssh om verbinding te maken met uw instantie. Geef uw gebruikersnaam en het externe IP-adres van de instantie waar u verbinding mee wilt maken op. Voor dit voorbeeld bevindt de privésleutel zich op ~/.ssh/my-ssh-key.

    ssh -i ~/.ssh/my-ssh-key [USERNAME]@[EXTERNAL_IP_ADDRESS]
    

    waarbij:

    • [USERNAME] de naam is van de gebruiker die verbinding maakt met de instantie. De gebruikersnaam voor uw SSH-sleutelpaar is opgegeven bij het maken van het SSH-sleutelpaar. U kunt als deze gebruiker verbinding maken met de instantie, als de instantie voor deze gebruiker een geldige openbare SSH-sleutel heeft en u de bijbehorende privé-SSH-sleutel heeft.
    • [EXTERNAL_IP_ADDRESS] het externe IP-adres is voor uw instantie.

Als de verbinding is geslaagd, kunt u de terminal gebruiken om opdrachten uit te voeren op uw instantie. Wanneer u klaar bent, gebruikt u de opdracht exit om de verbinding met de instantie te verbreken.

Verbinding maken door middel van PuTTY op werkstations met Windows

Op werkstations met Windows kunt u gebruikmaken van de PuTTY-tool om verbinding te maken met uw instanties. Om verbinding te maken met uw instantie via PuTTY, doet u het volgende:

  1. Als u nog geen openbare sleutel heeft toegepast op uw Cloud Platform-consoleproject, moet u een nieuw sleutelpaar genereren en deze toepassen op uw project.

  2. Download putty.exe.

  3. Voer de PuTTY-tool uit. Voer voor dit voorbeeld gewoon het door u gedownloade bestand putty.exe uit. Er wordt een venster geopend waarin u de instellingen van uw verbinding kunt configureren.

  4. Zoek in de Google Cloud Platform-console het externe IP-adres op voor de instantie waar u verbinding mee wilt maken. Ga naar de lijst met uw instanties.

    Ga naar de pagina Instanties.

  5. Geef in de PuTTY-tool uw gebruikersnaam en het externe IP-adres van de instantie waar u verbinding mee wilt maken op in het veld Host Name (Hostnaam). In het voorbeeld hieronder is de gebruikersnaam jane_doe en is het externe IP-adres 203.0.113.2.

    Het veld Host Name (Hostnaam) vullen met jane_doe@203.0.113.2

    Voer uw gebruikersnaam en het externe IP-adres in de volgende indeling in:

     [USERNAME]@[EXTERNAL_IP_ADDRESS]

    waarbij:

    • [USERNAME] de naam is van de gebruiker die verbinding maakt met de instantie. De gebruikersnaam voor uw SSH-sleutelpaar is opgegeven bij het maken van het SSH-sleutelpaar. U kunt als deze gebruiker verbinding maken met de instantie, als de instantie voor deze gebruiker een geldige openbare SSH-sleutel heeft en u de bijbehorende privé-SSH-sleutel heeft.
    • [EXTERNAL_IP_ADDRESS] het externe IP-adres is van de instantie waar u verbinding mee wilt maken.
  6. Navigeer aan de linkerkant van het PuTTY-venster naar Connection > SSH > Auth (Verbinding > SSH > Verif).

  7. Voer in het veld Private key file for authentication (Privésleutelbestand voor verificatie) het pad in naar uw privésleutelbestand.

    In het veld Private key file (Privésleutelbestand) het pad instellen naar het bestand my-ssh-key.ppk.

  8. Klik op Open om een terminal te openen met een verbinding naar uw instantie.

Als de verbinding is geslaagd, kunt u de terminal gebruiken om opdrachten uit te voeren op uw instantie. Wanneer u klaar bent, gebruikt u de opdracht exit om de verbinding met de instantie te verbreken.

Verbinding maken met instanties die geen extern IP-adres hebben

U kunt instanties zonder extern IP-adres maken om deze te isoleren van externe netwerken. Deze instanties hebben alleen interne IP-adressen op een Virtual Private Cloud-netwerk (VPC) van Google Cloud Platform. U kunt nog steeds verbinding maken met deze instanties via SSH, zolang u een pad van uw lokale werkstation naar het VPC-netwerk tot stand brengt.

Controleer voor u met dit proces begint of u voldoet aan de volgende voorwaarden:

  • U moet toegang hebben tot de interne IP-adressen van instanties op de VPC. U kunt toegang tot de interne IP-adressen van uw instanties tot stand brengen door gebruik te maken van een van de volgende opties:
    • Als uw lokale netwerk is verbonden met uw VPC van Google Cloud Platform via een Virtual Private Network (VPN), kunt u direct verbinding maken met de interne IP-adressen van instanties die dezelfde VPC delen.
    • Als u geen VPN-configuratie heeft, moet u een toegankelijke bastion host-VM-instantie identificeren met een extern IP-adres. De bastion host-VM-instantie en de VM-instanties waar u verbinding mee wilt maken, moeten hetzelfde interne netwerk of hetzelfde VPC-netwerk delen.
  • Uw Google Cloud Platform-VPC-netwerk moet een of meer firewallregels hebben die SSH-verbindingen op poort 22 toestaan. De firewallregels moeten SSH-verbindingen toestaan voor de IP-bereiken of specifieke IP-adressen waarvandaan u verbinding wilt maken.

U kunt de gcloud-opdrachtregeltool of reguliere SSH gebruiken om verbinding te maken met instanties die geen externe IP-adressen hebben.

gcloud

Om verbinding te maken met een instantie zonder een extern IP-adres, doet u het volgende:

  1. Breng een netwerkpad naar het interne IP-adres van uw instantie tot stand met een van de volgende methoden:

    • Gebruik een Virtual Private Network (VPN) om uw lokale netwerk verbinding te laten maken met uw VPC van Google Cloud Platform.

    • Als u geen VPN kunt gebruiken, moet u verbinding maken met een bastion host-instantie die zowel een extern IP-adres als een intern IP-adres heeft op hetzelfde interne netwerk als de instantie waar u verbinding mee wilt maken.

      gcloud compute ssh [EXTERNAL_INSTANCE_NAME]
      

      waarbij [EXTERNAL_INSTANCE_NAME] de naam is van de bastion host-instantie die u gebruikt om toegang te krijgen tot het interne netwerk.

  2. Maak verbinding met een instantie zonder een extern IP-adres via de opdracht gcloud beta compute ssh met de vlag --internal-ip.

    gcloud beta compute ssh [INTERNAL_INSTANCE_NAME] --internal-ip
    

    waarbij [INTERNAL_INSTANCE_NAME] de naam is van de instantie waar u verbinding mee wilt maken.

Als de verbinding is geslaagd, kunt u de terminal gebruiken om opdrachten uit te voeren op de interne instantie. Wanneer u klaar bent, kunt u de opdracht exit gebruiken om uw verbindingen af te sluiten en terug te keren naar uw lokale werkstation.

SSH

Om verbinding te maken met een instantie zonder een extern IP-adres, doet u het volgende:

  1. Als u nog geen openbare sleutel heeft toegepast op uw Cloud Platform-consoleproject, moet u een nieuw sleutelpaar genereren en deze toepassen op uw project.

  2. Start de ssh-agent op uw lokale machine om uw sleutels te beheren:

    $ eval `ssh-agent`
    

  3. Gebruik de opdracht ssh-add om uw openbare sleutels van uw lokale computer in de agent te laden en gebruik deze voor de verificatie voor alle SSH-opdrachten.

    $ ssh-add ~/.ssh/[PRIVATE_KEY]
    

    waarbij [PRIVATE_KEY] de bestandsnaam is van uw privésleutelbestand.

  4. Breng een netwerkpad naar het interne IP-adres van uw instantie tot stand met een van de volgende methoden:

    • Gebruik een Virtual Private Network (VPN) om uw lokale netwerk verbinding te laten maken met uw VPC van Google Cloud Platform.

    • Als u geen VPN kunt gebruiken, moet u verbinding maken met een bastion host-instantie die zowel een extern IP-adres als een intern IP-adres heeft op hetzelfde interne netwerk als de instantie waar u verbinding mee wilt maken. Voeg het argument -A toe om het doorsturen van verificatieagenten in te schakelen.

      $ ssh -A [USERNAME]@[BASTION_HOST_EXTERNAL_IP_ADDRESS]
      

      waarbij [USERNAME] de gebruiker is die verbinding maakt met de instantie en [BASTION_HOST_EXTERNAL_IP_ADDRESS] het externe IP-adres is van de bastion host-instantie die u gebruikt om toegang te krijgen tot het interne netwerk.

  5. Maak vanaf uw lokale netwerk of bastion host-instantie verbinding met de instantie die geen extern IP-adres heeft.

    $ ssh [INTERNAL_INSTANCE_IP_ADDRESS]
    

    waarbij [INTERNAL_INSTANCE_IP_ADDRESS] het interne IP-adres is van de instantie waar u verbinding mee wilt maken.

Als de verbinding is geslaagd, kunt u de terminal gebruiken om opdrachten uit te voeren op de instantie die geen extern IP-adres heeft. Wanneer u klaar bent, kunt u de opdracht exit gebruiken om uw verbindingen af te sluiten en terug te keren naar uw lokale werkstation.

Verbinding maken met instanties als de root-gebruiker

Openbare images en de meeste voorkomende besturingssystemen maken het standaard niet mogelijk om over SSH in te loggen op de root. Het SSH-configuratiebestand /etc/ssh/sshd_config heeft als goed gebruik de parameter PermitRootLogin ingesteld op no.

Vanwege deze parameter kunt u als rootgebruiker geen verbinding maken met de instanties, zelfs als u in uw project of in de metadata van uw instantie een SSH-sleutel opgeeft voor root. Als een gebruiker rootmachtigingen vereist, kunnen deze machtigingen worden verkregen door opdrachten uit te voeren via sudo.

Volgende stap