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.