Installa la chiave pubblica tramite ssh-copy-id per altri utenti


26

ssh-copy-idpuò essere utilizzato per installare la chiave pubblica in una macchina remota authorized_keys. Lo stesso comando potrebbe essere utilizzato per installare le chiavi pubbliche di altri utenti, se ne hai la sudopossibilità?

Aggiornamento: sia locale che remoto utilizzano Ubuntu 12.04.

Aggiornamento 2: descrizione della procedura di creazione di un nuovo account utente e aggiunta di chiave pubblica

  1. (remoto) Crea un nuovo account utente e impostalo solo per l'accesso alla chiave pubblica dell'utente.
  2. (locale) Genera una chiave pubblica per il nuovo account utente (ssh-keygen).
  3. Normalmente lo faccio per creare la directory e il file .ssh/authorized_keyssul server remoto, quindi copiare e incollare la chiave pubblica generata localmente nell'account del nuovo utente. Quello che sto cercando è che se posso usare ssh-copy-idper installare la chiave pubblica di questo utente appena creato direttamente nella directory ssh. Solo per salvare un altro paio di comandi.

Risposte:


12

Non è lo stesso comando ma se si dispone di sudo sull'host remoto, è possibile utilizzare ssh per eseguire i passaggi da remoto. Uso il seguente comando per inviare il mio tasto ssh all'utente root del mio lampone:

cat ~/.ssh/id_rsa.pub | \
  ssh pi@192.168.1.25 \
  "sudo mkdir /root/.ssh; sudo tee -a /root/.ssh/authorized_keys"
  • gatti la mia chiave pubblica
  • lo pipe a ssh
  • ssh si collega al mio lampone come utente ssh
  • sul telecomando usa sudo per creare /root/.ssh
  • quindi usa sudo con "tee -a" per aggiungere stdin (che contiene la chiave dal primo gatto) a /root/.ssh/authorized_keys

Metti queste cose insieme come uno script, forse aggiungi un po 'di chmod / chown sul lato remoto e hai quello che ti serve.


Bello e grazie per la suddivisione del comando.
— Blake Frederick,

1

Sì :), se, ad esempio, sei registrato come ghost @ ubuntu e tu

ssh-copy-id root@host-ip

Di quanto vedrai, sul server host nella /root/.ssh/authorized_keyschiave del file che termina con ghost@ubuntu.
Ciò significa che l'utente fantasma ha copiato la sua coppia di chiavi e non deve più digitare la password.
Non sono sicuro che funzionerà con -u <username>flag ora, ma puoi sempre accedere come utente diverso con

su <user_name> 

e poi ssh-copy-id ...


1
La chiave verrà installata /root/.ssh/authorized_keysinvece di /home/ghost/.ssh/authorized_keys? Ho appena aggiornato la procedura che sto facendo attualmente per installare una chiave pubblica per un nuovo utente. Sto solo cercando un metodo migliore. Grazie!
— Realguess

La chiave verrà installata nella home dell'utente a cui ti stai connettendo da remoto. Puoi usare l'opzione -i di ssh-copy-id per specificare quale chiave vuoi copiare, ma non puoi copiarla in un'altra directory con il normale ssh-copy-id.
— user2313067

puoi specificare quale utente copierai la chiave, se vuoi accedere come root di ssh-copy-id root @ host-ip, se vuoi come fantasma di ssh-copy-id ghost @ host-ip
— mirkobrankovic

1
Il sistema è stato impostato per consentire l'accesso solo con chiave pubblica. Poiché l'utente è ghoststato appena creato, non esiste una chiave pubblica disponibile per l'utente. Ecco perché è necessario installare prima la chiave pubblica per l'utente, quindi ssh-copy-id ghost@host-ipfunzionerà. Ma grazie, penso che alcuni comandi extra sul server remoto non saranno un grosso problema.
— Realguess

sì, per prima cosa devi generare pub. chiave localmente e di ssh-copi-id al server remoto
— mirkobrankovic
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.