Vraag Eenvoudigste manier om ssh-sleutels naar een andere machine te kopiëren?


Ik ben thuis lui en gebruik wachtwoordverificatie voor mijn thuismachines. Ik ben klaar om over te schakelen naar op sleutels gebaseerde authenticatie. Er zijn veel opties op het web over hoe u dit kunt doen, zoals het katten en dan de sleutel omdraaien, de sleutel direct overnemen, enz.

Ik ben op zoek naar de gemakkelijkste en aanbevolen manier om een ​​sleutel te kopiëren, hopelijk is er ergens een gemaksverpakking in het Ubuntu SSH-pakket?

Ik ben er al van op de hoogte hoe wachtwoorden uit te loggen.


296
2017-09-27 20:24


oorsprong


askubuntu.com/questions/307881/... - Vineet


antwoorden:


De ssh-copy-id commando (in de openssh-client pakket en standaard geïnstalleerd) doet precies dit:

ssh-copy-id user@hostname.example.com

kopieert de openbare sleutel van uw standaardidentiteit (gebruik -i identity_file voor andere identiteiten) naar de externe host.

De standaardidentiteit is uw "standaard" ssh-sleutel. Het bestaat uit twee bestanden (openbare en persoonlijke sleutel) in uw ~/.ssh map, normaal genoemd identity, id_rsa of id_dsa (en hetzelfde met .pub), afhankelijk van het type sleutel. Als je niet meer dan één ssh-sleutel hebt gemaakt, hoef je je geen zorgen te maken over het opgeven van de identiteit, ssh-copy-id zal het automatisch automatisch selecteren.

In het geval dat u geen identiteit heeft, kunt u er een genereren met de tool ssh-keygen.

Als de server een andere poort gebruikt dan de standaardpoort (22) gebruik je aanhalingstekens op deze manier (bron):

ssh-copy-id "user@hostname.example.com -p <port-number>"

408
2017-09-27 21:01



Wat is de standaardidentiteit? - Oxwivi
@Oxwivi: de standaardidentiteit is uw "standaard" ssh-sleutel. Het bestaat uit twee bestanden (openbare en persoonlijke sleutel) in uw ~/.ssh map, gewoonlijk `` identiteit, id_rsa` of id_dsa (en hetzelfde met .pub), afhankelijk van het type sleutel. Als je niet meer dan één ssh-sleutel hebt gemaakt, hoef je je geen zorgen te maken over het opgeven van het bestand, ssh-copy-id zal het gewoon automatisch kiezen. - Marcel Stimberg
voor verschillende poorten gebruik dit: ssh-copy-id "user@host -p 6842" - jibon57
Wat als de externe server waarnaar u kopieert geen wachtwoordprompts toestaat en in principe is vergrendeld behalve voor SSH-toegang? - Cyle
Op Mac kun je doen brew install ssh-copy-id en voer dan de opdracht uit. - Avishai


Ik vind het antwoord van Marcel leuk. Ik kende dit bevel niet. Ik heb altijd gebruikt wat ik had gevonden op a SUN-website:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

Ik dacht om het hier nog steeds te plaatsen, omdat het een goede illustratie is van wat er kan worden bereikt shell-code met de kracht van ssh. Maar met behulp van de ssh-copy-id is definitief een veiligere manier om het goed te doen!

Merk op dat als de map .ssh bovenstaande opdracht zal mislukken. Bovendien is het misschien beter om bij het maken van het bestand een minimaal mogelijke toestemming in te stellen (in principe alleen lezen en schrijven voor de eigenaar). Hier is een meer geavanceerd commando:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'

113
2017-10-11 22:26



Deze exacte opdrachten werken ook vanaf een Mac - Mihai P.
Het zou onder elke Unix moeten werken met de meeste shell. Ik heb het bericht bijgewerkt met een bijgewerkte opdracht in het geval de map .ssh bestaat niet aan de remote kant. - Huygens
De cat is niet nodig - een normale invoeromleiding is genoeg, b.v. < ~/.ssh/id_rsa.pub | ssh ... - maxschlepzig
@Huygens Bedankt. Handiger om deze te onthouden, omdat je niets hoeft te installeren en het kan ook goed zijn voor het uitvoeren van buitenlandse commando's, bijvoorbeeld het veranderen van server-side permissies zoals je hebt laten zien in je geavanceerde voorbeeld. - Jonathan Komar
Ik geef de voorkeur aan deze manier, omdat je hiermee uitgebreide ssh kunt gebruiken, wat handig is om uit te zoeken waarom dingen kapot zijn. sshcopyid bevroor gewoon en werkte nooit, dit ging perfect. - Sirens


Grafische methode

  1. Open toepassingen ▸ Wachtwoorden en sleutels ▸ Mijn persoonlijke sleutels.
  2. Selecteer uw sleutel en klik vervolgens op afgelegen ▸ Configureer de sleutel voor Secure Shell.

Set Up Computer for SSH Connection


25
2017-09-27 20:32



Ik heb geen "Wachtwoorden en coderingssleutels" in mijn menu. - Jorge Castro
Welke versie van Ubuntu gebruikt u? In Ubuntu 10.04 LTS zou dit standaard beschikbaar moeten zijn. - ændrük
10.10, heeft zojuist de tag toegevoegd. Het antwoord van Marcel is wat ik zoek, maar +1 voor je desktop georiënteerde antwoord! - Jorge Castro
Dit programma is seahorse. - Gilles
Ik denk dat deze applicatie in het menu Systeem-> Voorkeuren staat in 10.10 (ik kan het nu niet controleren, ik sta op 10.04) - Huygens


Op Ubuntu kunt u uw sleutels ophalen van Launchpad:

ssh-import-id [launchpad account name]

Details:

  1. U hebt dus een Launchpad-account nodig Login of creëer een account
  2. Klik na het inloggen op de knop naast SSH-sleutels:
  3. Plak de inhoud van uw openbare sleutelbestand in dat veld (inclusief opmerking). Zo'n sleutel ziet er als volgt uit:

    ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
    

    Hier, ssh-rsa geeft aan dat de sleutel een RSA-sleutel is, AAAAB3Nza .... UyDOFDqJp is de eigenlijke sleutel en lekensteyn is de opmerking.

  4. Sla de sleutel op door op te drukken Publieke sleutel importeren
  5. Als alles goed is gegaan, staat uw sleutel nu onder SSH-sleutels:

Het pakket ssh-import-id moet worden geïnstalleerd op de machine die moet worden geopend vanaf de afstandsbediening. Dit pakket is geïnstalleerd samen met de openssh-serverpakket omdat het een aanbevolen pakket is voor openssh-server. Na ervoor te zorgen dat ssh-import-id is geïnstalleerd Voer op de clientcomputer het volgende uit:

ssh-import-id [launchpad account name]

Hiermee wordt de openbare sleutel van de Launchpad-servers via HTTPS gedownload, die u beschermt tegen MITM-aanvallen.

Op Ubuntu Lucid en daarvoor kun je hetzelfde bereiken met:

wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

De echo opdracht is nodig om een ​​extra nieuwe regel na de regel met de SSH-sleutel te krijgen.


18
2018-06-10 19:20





voor aangepaste poort

ssh-copy-id -i "user@hostname.example.com -p2222"

-i schakelt standaard naar ~ / .ssh / id_rsa.pub, als je een andere sleutel wilt, zet dan het pad van de toets achter -i

WAARSCHUWING: Als je de -i niet hebt geschreven, kopieer je al je sleutels in ~ / .ssh


12
2018-03-08 20:16



Weet je het zeker met die WAARSCHUWING? "-i identity_file - Gebruik alleen de sleutel (s) in identity_file (in plaats van naar identiteiten te zoeken via ssh-add (1) of in het default_ID_file) .Als de bestandsnaam niet eindigt op .pub is dit toegevoegd. is weggelaten, het default_ID_file wordt gebruikt. " - Yousha Aleayoub