web-dev-qa-db-fra.com

Puis-je utiliser l'authentification de clé SSH pour vous connecter à un système distant avec un nom d'utilisateur différent?

Supposons que j'ai un système distant nommé "télémotesystem" et un compte d'utilisateur "pignon" sur ce système.

Je sais que sur mon système local, je peux générer une paire de clé SSH en tant qu'utilisateur local "pignon", mettre la clé publique dans le fichier "/home/foouser/.ssh/authorized_keys" sur "RemoteSystem". Lorsque je ssh comme "pignon" de mon système local à "SemoteSystem", SSH utilise la paire de clés pour vous authentifier.

Mais que si mon nom d'utilisateur local n'est pas le même que le nom d'utilisateur sur le système distant? C'est-à-dire que si je veux ssh comme utilisateur local "Baruser" à "SemoteSystem"? De toute évidence, je devrai générer une paire de clés pour "Baruser" et ajouter la clé publique à "/Home/foouser/.ssh/authorize_keys". Ensuite, je devrais être capable de "SSH Ploveer @ RemoteSystem" tout en connecté comme "Baruser" localement et SSH utilisera la paire de clés pour authentifier, non?

Je demande parce que j'essaie d'obtenir l'authentification clé qui fonctionne dans ce scénario, sans succès. Je ne sais pas si c'est en raison de l'inadéquation du nom d'utilisateur, ou d'un problème de configuration avec le serveur SSH sur le système distant.

17
Matt Hurne

Oui, vous pouvez le faire, comme vous l'avez décrit.

 baruser @ ici ~ $ ssh-add -l [.____] 4096 10: B3: fd: 29: 08: 86: 24: A6: DA: 0A: DD: C6: 1e: B0: 66 : 6a id_rsa (RSA) 
 Baruser @ ICI ~ $ SSH PUJOUSER @ RemoteSystem 
 Message motd, etc. [.____] = 
11
user1686

C'est un peu de côté, mais .....

Si vous utilisez toujours le même nom d'utilisateur pour un serveur distant, vous pouvez également trouver utile d'ajouter un hôte dans votre configuration SSH:

Host remotesystem
    User baruser

De cette façon, vous n'avez pas besoin de vous rappeler de spécifier le nom d'utilisateur lorsque vous vous connectez, et que vous excédez que lorsque vous avez des problèmes avec les clés à l'avenir.

10
Mark

Votre nom d'utilisateur local n'a pas vraiment d'importance (mis à part la clé privée qui doit résider dans votre répertoire de base de votre utilisateur local). Copiez simplement la clé de l'utilisateur distant authorized_keys section et cela fonctionnera.

5
Sören Kuklau

Avec des problèmes liés à SSH, la première chose à faire est d'augmenter la verbosité du client:

utilisateur ssh @ machine -vvv

Si cela ne vous donne pas une idée de ce qui ne va pas, vous devez modifier le niveau de journal sur le serveur et redémarrer le démon.

LOGLEVEL DEBUG3

Vous devriez trouver la sortie de débogage dans /var/log/auth.log (ou où toujours SSH est configuré pour vous connecter à). Une fois que vous avez trouvé le problème, n'oubliez pas de le remettre sur la manière dont vous l'avez trouvée.

3
David Pashley

Si vous avez activé SE Linux, vous devrez également faire ce qui suit.

Ajoutez l'étiquette SELINUX à authorized_keys Pour que cela puisse être consulté par SSHD.

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh
2
Prof Mo

Les autorisations sur les répertoires .sh sur les deux machines sont beaucoup correctes. Généralement, cela signifie 700 sur le répertoire .sh et au plus 755 sur le répertoire de base. En plus de 600 sur tous les fichiers des répertoires .sh.

Si l'utilisateur du système distant est root, assurez-vous que la racine peut ssh. (Performiotlogin dans sshd_config) et cette clé publique (PubkeyAuthentication) et si nécessaire RSA (RSAauthentication) sont activées.

On dirait que vous faites les choses correctement, mais assurez-vous que les autorisations sont correctes sur autorisé. Ils devraient être définis sur 600.

0
Michael Gorsuch