web-dev-qa-db-fra.com

Installer la clé publique via ssh-copy-id pour les autres utilisateurs

ssh-copy-id peut être utilisé pour installer votre clé publique dans le authorized_keys d'une machine distante. La même commande peut-elle être utilisée pour installer les clés publiques d'autres utilisateurs, si vous avez la possibilité Sudo?

Mise à jour: les utilisateurs locaux et distants utilisent Ubuntu 12.04.

Mise à jour 2: description de la procédure de création d'un nouveau compte utilisateur et de l'ajout d'une clé publique

  1. (distant) Créez un nouveau compte utilisateur et définissez-le sur Accès clé publique uniquement.
  2. (local) Générez une clé publique pour le nouveau compte d'utilisateur (ssh-keygen).
  3. Normalement, je crée le répertoire et le fichier .ssh/authorized_keys sur le serveur distant, puis je copie et colle la clé publique générée localement dans le compte du nouvel utilisateur. Ce que je recherche, c’est que si je peux utiliser ssh-copy-id pour installer la clé publique de cet utilisateur nouvellement créé directement dans le répertoire ssh. Juste pour enregistrer quelques commandes supplémentaires.
23
realguess

Pas la même commande, mais si vous avez Sudo sur l'hôte distant, vous pouvez utiliser ssh pour effectuer à distance les étapes requises. J'utilise la commande suivante pour transmettre ma clé ssh à l'utilisateur root de ma framboise:

cat ~/.ssh/id_rsa.pub | \
  ssh [email protected] \
  "Sudo mkdir /root/.ssh; Sudo tee -a /root/.ssh/authorized_keys"
  • chats ma clé publique
  • le conduit vers SSH
  • sSH se connecte à mon framboise en tant qu'utilisateur SSH
  • à distance, Sudo crée /root/.ssh
  • utilise ensuite Sudo avec "tee -a" pour ajouter stdin (qui contient la clé du premier chat) à /root/.ssh/authorized_keys

Rassemblez simplement ces éléments dans un script, ajoutez peut-être un peu chmod/chown du côté distant et vous aurez ce dont vous avez besoin.

8
Michael Wyraz

Oui :), si, par exemple, vous êtes connecté comme ghost @ ubuntu et que vous

ssh-copy-id root@Host-ip

Ensuite, sur le serveur hôte dans la clé de fichier /root/.ssh/authorized_keys se terminant par ghost@ubuntu.
Cela signifie que l’utilisateur fantôme a copié sa paire de clés et ne doit plus taper son mot de passe.
Je ne suis pas sûr que cela fonctionne avec le drapeau -u <username>, mais vous pouvez toujours vous connecter en tant qu'utilisateur différent avec

su <user_name> 

puis ssh-copy-id ...

1
mirkobrankovic