Comment faire pour que ssh se connecte en tant que bon utilisateur?

8

J'utilise ssh sur une variété de machines, principalement Linux. Les comptes sur ces machines varient dans le schéma de nommage: si mon nom est First Last, j'ai des comptes: first, flast, last_f, lastf, et parfois je dois me connecter en tant que root. Pour chaque machine que j'utilise, je voudrais que le client openssh sache quel compte utiliser lorsque je ne spécifie pas sur la ligne de commande.

La question est donc: comment faire ssh serverDo The Right Thing lorsqu'un nom d'utilisateur n'est pas spécifié?

bstpierre
la source

Réponses:

18

Vous pouvez créer un configfichier dans votre .sshrépertoire personnel, qui peut spécifier un utilisateur par défaut, un fichier d'identité, etc. et l'affecter à un alias que vous pouvez utiliser pour vous connecter.

Par exemple, vous pouvez mettre ceci dans le ~/.ssh/configfichier:

Host example
    HostName example.com
    User first_last
    IdentityFile ~/.ssh/example_rsa
    Port 22
    RSAAuthentication yes
    PubkeyAuthentication yes

Host example2
    HostName example2.com
    User last_first
    # other parameters as needed

Ensuite, vous pouvez simplement taper ssh exampleou ssh example2sur la ligne de commande pour vous connecter.

Vous pouvez donc en configurer un pour chaque machine à laquelle vous souhaitez vous connecter, avec l'utilisateur concerné. Ensuite, utilisez simplement les alias pour vous connecter sans avoir à spécifier un utilisateur. Vous pouvez également utiliser un modèle pour faire correspondre plusieurs hôtes.

Il y a plus d'informations et des détails sur ce que vous pouvez spécifier dans un fichier de configuration dans la page de manuel ssh_config .

Rich Adams
la source
3
Absolument, vous pouvez en spécifier autant que vous le souhaitez dans le même fichier .config. J'en ai plus de 20 dans le mien sans aucun problème. Je laisse juste un espace entre chaque hôte distinct, ce qui n'est probablement pas nécessaire, mais le rend plus lisible.
Rich Adams
1
Ne devrait-il pas être configdéposé? Sans point au début?
danadam
1
@rich essayait de vous faire montrer un autre site dans votre exemple; j'espère que cela ne vous dérange pas que
j'aille de l'
4
Le retrait de tout sauf des lignes contenant "Host foo" aide grandement à la cause de la maintenabilité.
innaM
1
@CristianCiupitu: Étant donné que c'est une question Linux, je dirais à peine que la page de manuel d'OpenBSD est officielle. Il existe des options dans ssh de Linux (par exemple, GSSAPIKeyExchange ) qui ne sont pas disponibles dans la version BSD.
Dennis
1

Selon la réponse de Rich Adam, j'ai découvert PuTTY où il stocke ses paramètres.

Tout est stocké dans une arborescence de registre, vous le trouverez sous HKEY_CURRENT_USER\Software\SimonTatham(Simon Tatham est le développeur de PuTTY).
Là, vous pouvez voir comment un hôte est défini.

guerda
la source
1

Si vous voulez le changer pour CHAQUE site:

Modifiez votre ~/.ssh/configpour avoir ceci:

Host *
    User buck
hopeseekr
la source