Hoe kan ik een lokaal sleutelpaar doorsturen in een SSH-sessie?

Ik implementeer handmatig websites via SSH, ik beheer de broncode in github/bitbucket. Voor elke nieuwe site genereer ik momenteel een nieuw sleutelpaar op de server en voeg ik dit toe aan github/bitbucket, zodat ik kansen van de server kan halen.

Ik kwam een ​​functie tegen in capistrano om het sleutelpaar van de lokale machine te gebruiken om updates naar de server te halen, namelijk ssh_options[:forward_agent] = true

Hoe kan ik zoiets doen en het sleutelpaar van mijn lokale machine doorsturen naar de server waarnaar ik SSH-ing, zodat ik kan voorkomen dat ik voor elke nieuwe site sleutels aan github/bitbucket moet toevoegen.


Antwoord 1, autoriteit 100%

Dit bleek een heel eenvoudige, complete handleiding is hier SSH Forwarding gebruiken

In wezen moet u een ~/.ssh/config-bestand maken, als dit niet bestaat.

Voeg vervolgens de hosts toe (domeinnaam of IP-adres in het bestand en stel ForwardAgent yes) in

Voorbeeldcode:

Host example.com
    ForwardAgent yes

Maakt het SSH-leven een stuk makkelijker.


Antwoord 2, autoriteit 59%

  1. Maak ~/.ssh/config
  2. Vul het in met (hostadres is het adres van de host waarnaar u credits wilt laten doorsturen):

    Host [host address]
         ForwardAgent yes
    
  3. Als je ssh-agent nog niet hebt uitgevoerd, voer het dan uit:

    ssh-agent
    
  4. Neem de uitvoer van dat commando en plak het in de terminal. Hiermee worden de omgevingsvariabelen ingesteld die moeten worden ingesteld om het doorsturen van agenten te laten werken. Optioneel kunt u deze en stap 3 vervangen door:

    eval "$(ssh-agent)"
    
  5. Voeg de sleutel toe die u wilt doorsturen naar de ssh-agent:

    ssh-add [path to key if there is one]/[key_name].pem
    
  6. Log in op de externe host:

    ssh -A [user]@[hostname]
    
  7. Als je vanaf hier inlogt op een andere host die die sleutel accepteert, werkt het gewoon:

    ssh [user]@[hostname]
    

Antwoord 3

Het configuratiebestand is erg handig, maar de truc voor het doorsturen van agenten is de opdracht ssh-add. Het lijkt erop dat dit eerst moet worden geactiveerd voordat er externe verbindingen worden gemaakt of nadat de computer opnieuw is opgestart. Probeer de volgende oplossing van de gebruiker daminetreg om de sleutel permanent toe te voegen:
Persoonlijk privésleutel toevoegen met ssh-add op Ubuntu


Antwoord 4

Om het eenvoudig met de standaardidentiteit (id_rsa) te gebruiken, kunt u het volgende paar commando’s gebruiken:

ssh-add
ssh -A [username]@[server-address]

Other episodes