2008-09-17 8 views
44

ssh recherchera ses clés par défaut dans le dossier ~/.ssh. Je veux le forcer à toujours regarder dans un autre endroit.Définition de l'emplacement de la clé ssh par défaut

La solution que je utilise est d'ajouter les clés de l'emplacement non standard à l'agent:

ssh-agent 
ssh-add /path/to/where/keys/really/are/id_rsa 

(sur shell Linux et MingW32 sous Windows)

+0

btw, la raison pour laquelle je voulais faire cela est que je pouvais garder mes clés dans Dropbox .. fonctionne un régal! – tardate

+3

Vous pourriez jeter des liens symboliques? –

+7

@tardate, hmm, faire confiance à dropbox avec vos clés semble dangereux, à moins que vous ne les protégiez bien par mot de passe ... – gatoatigrado

Répondre

71

Si vous cherchez seulement à pointer vers un autre emplacement pour votre fichier d'identité, la vous pouvez modifier votre ~/.ssh/config avec l'entrée suivante:

IdentityFile ~/.foo/identity 

man ssh_config pour trouver d'autres options de configuration.

+3

Notez également que vous pouvez lister ce paramètre plusieurs fois pour plusieurs clés. Toutefois, l'affichage d'un trop grand nombre de clés (généralement> 4) peut entraîner l'échec de l'authentification avant de demander un mot de passe sur les systèmes où votre clé n'est pas valide. ssh-agent, ou keychain (http://www.gentoo.org/proj/en/keychain/) sont utiles ici. – jmanning2k

+0

si vous avez un mot de passe protégé pour vos clés ssh, vous feriez mieux d'ajouter ssh-votre-clé privée, sinon, il demande toujours le mot de passe –

+0

J'ai dû ajouter cette ligne au début de la configuration. L'adjoindre à la fin n'a pas fonctionné. – SebK

14

man ssh me donne cette option Cela pourrait être utile.

-i identity_file Sélectionne un fichier à partir duquel l'identité (clé privée) pour RSA ou DSA l'authentification est lu. La valeur par défaut est ~/.ssh/identity pour la version de protocole , et ~/.ssh/id_rsa et ~/.ssh/id_dsa pour la version de toco version 2. Les fichiers d'identité peuvent également être spécifiés sur une base d'hôte dans le fichier de configuration. Il est possible d'avoir plusieurs options -i (et plusieurs identités spécifiées dans les fichiers de configuration ).

Vous pouvez créer un alias dans votre config bash avec quelque chose comme

ssh alias = "ssh -i/path/to/private_key"

Je ne l'ai pas regardé dans un fichier de configuration de ssh, mais comme l'option -i cela aussi pourrait être aliasé

-F configfile Spécifie un autre fichier de configuration par utilisateur. Si un fichier de figuration est fourni sur la ligne de commande, le fichier de configuration (/ etc/ssh/ssh_config) sera ignoré. Le par défaut pour le fichier de configuration par utilisateur est ~/.ssh/config.

-5

L'emplacement du fichier est le répertoire /root/.ssh sous le nom "authorized_keys", généralement caché pour des raisons de sécurité. Si vous utilisez la commande puTTy et la ligne de commande, utilisez: #cd ~/.ssh puis éditez le fichier "authorized_keys" avec l'éditeur vi. Voir également, tapez #man ssh_config fournira plus d'options (si nécessaire) Espérons que cela aide.

+0

Ceci ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire en dessous de son message - vous pouvez toujours commenter vos propres messages, et une fois que vous aurez suffisamment de [réputation] (http://stackoverflow.com/help/whats-reputation) vous pourrez être capable de [commenter sur n'importe quel post] (http://stackoverflow.com/help/privileges/comment). – Kenster

+0

@Kenster: En quoi n'est-ce pas une réponse? –

+1

@LightnessRacesinOrbit La question consiste à demander au client ssh de lire les clés d'un autre emplacement. Rien dans cette réponse n'est sensible à cela. _authorized_keys_ est lu par le serveur, pas par le client, et il n'y a aucune modification que vous pourriez apporter à ce fichier, qui modifierait l'endroit où le client cherche ses clés. Même s'il y avait une bonne raison de modifier ce fichier, la réponse ne dit pas pourquoi l'éditer ou quel changement apporter. Je sais que nous sommes censés être généreux pour décider si quelque chose n'est pas une réponse. Mais cette "réponse" est au mieux un paragraphe de texte générique lié à ssh. – Kenster