2008-09-17 9 views
44

ssh sucht standardmäßig im Ordner ~/.ssh nach seinen Schlüsseln. Ich möchte es zwingen, immer an einem anderen Ort zu suchen.Einstellen der Standardposition des SSH-Schlüssels

Die Abhilfe Ich verwende ist den Schlüssel aus dem Nicht-Standard-Standort an die Agenten hinzuzufügen:

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

(unter Linux und MingW32 Shell auf Windows)

+0

BTW, der Grund, warum ich das tun wollte, ist, damit ich meine Schlüssel in Dropbox behalten konnte. – tardate

+3

Sie könnten Symlinks einwerfen? –

+7

@tardate, hmm, vertrauen Dropbox mit Ihren Schlüsseln scheint gefährlich, es sei denn, Sie schützen Sie sie gut ... – gatoatigrado

Antwort

71

Wenn Sie nur an einen anderen Ort für Sie Identitätsdatei zeigen suchen, können die Sie Ihre ~/.ssh/config-Datei mit folgendem Eintrag ändern:

IdentityFile ~/.foo/identity 

man ssh_config zu finden andere Konfigurationsoptionen.

+3

Beachten Sie auch, dass Sie diesen Parameter für mehrere Schlüssel mehrfach auflisten können. Wenn Sie jedoch zu viele Schlüssel auflisten (normalerweise> 4), kann Auth fehlschlagen, bevor Sie auf Systemen, deren Schlüssel nicht gültig ist, nach einem Kennwort gefragt werden. ssh-agent oder keychain (http://www.gentoo.org/proj/en/keychain/) sind hier hilfreich. – jmanning2k

+0

Wenn Sie für Ihre ssh-Schlüssel passwortgeschützt sind, dann sollten Sie 'ssh-add your-private-key' hinzufügen, sonst fragt es immer nach dem Passwort des Schlüssels –

+0

Ich musste diese Zeile am Anfang der Konfiguration hinzufügen. Das Anhängen bis zum Ende funktionierte nicht. – SebK

14

man ssh gibt mir diese Optionen Das könnte nützlich sein.

-i identity_file Wählt eine Datei, aus der die Identität (private Schlüssel) für RSA oder DSA-Authentifizierung gelesen wird. Der Standardwert ist ~/.ssh/identity für Protokollversion 1 und ~/.ssh/id_rsa und ~/.ssh/id_dsa für pro tocol Version 2. Identitätsdateien können auch auf einer Host-Basis ( ) angegeben werden in der Konfigurationsdatei. Es ist möglich mehrere -i Optionen (und mehrere Identitäten, die in den Konfigurationsdateien angegeben sind) zu haben.

So könnte man einen Alias ​​in Bash Config mit so etwas wie

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

Ich habe schaffen nicht sah in eine ssh-Konfigurationsdatei, aber wie die -i Option auch dies könnte

-F configfilealiased werden 10 Gibt eine alternative benutzerspezifische Konfigurationsdatei an. Wenn eine Konfigurationsdatei in der Befehlszeile angegeben wird, wird die systemweite Konfigurationsdatei (/ etc/ssh/ssh_config) ignoriert. Der Standardwert für die Konfigurationsdatei pro Benutzer lautet ~/.ssh/config.

-5

Der Speicherort der Datei ist das Verzeichnis /root/.ssh mit dem Namen "authorized_keys", normalerweise ist es aus Sicherheitsgründen ausgeblendet. * Wenn Sie die Eingabe- und Befehlszeile verwenden, verwenden Sie: #cd ~/.ssh und bearbeiten Sie dann die Datei "authorized_keys" mit dem Editor vi. Beziehen Sie sich auch, geben Sie #man ssh_config wird mehr Optionen (falls erforderlich) Hope dies hilft.

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag - du kannst deine eigenen Beiträge jederzeit kommentieren, und sobald du genügend [Reputation] (http://stackoverflow.com/help/whats-reputation) hast, wirst du das tun in der Lage sein [jeden Beitrag kommentieren] (http://stackoverflow.com/help/privileges/comment). – Kenster

+0

@Kenster: Inwiefern ist es keine Antwort? –

+1

@LightnessRacesinOrbit Die Frage ist, den ssh-Client dazu zu bringen, Schlüssel von einem anderen Ort zu lesen. Nichts in dieser Antwort reagiert darauf. _authorized_keys_ wird vom _server_ gelesen, nicht vom Client, und es gibt keine Änderung, die Sie an dieser Datei vornehmen könnten, die ändern würde, wo der _client_ nach seinen Schlüsseln sucht. Selbst wenn es einen guten Grund gibt, diese Datei zu bearbeiten, sagt die Antwort nicht, warum sie bearbeitet werden soll oder welche Änderungen vorgenommen werden müssen. Ich weiß, wir sollten großzügig sein, wenn wir entscheiden, ob etwas nicht die Antwort ist. Aber diese "Antwort" ist bestenfalls ein Absatz von generischem Text, der sich auf ssh bezieht. – Kenster

Verwandte Themen