Wie kann ich festlegen, dass SSH nur von ssh-agent bereitgestellte Schlüssel verwendet?

280
sschuberth

Ich muss sshnur Schlüssel verwenden, die von bereitgestellt werden ssh-agent, und alle Identitätsdateien in ignorieren ~/.ssh. Was ist der beste Weg das zu tun?

Hintergrund: Ich muss mich per SSH bei einem Git-Server authentifizieren. Ich habe eine, ~/.ssh/id_rsadie sich ordnungsgemäß authentifiziert, aber der zugehörige Git-Benutzer verfügt nicht über die richtigen Repository-Zugriffsberechtigungen. Ich muss also einen anderen Schlüssel verwenden, den ich nur über ssh-agentzur Verfügung stellen kann, um mich als der richtige Git-Benutzer zu authentifizieren. Da SSH jedoch den lokalen Identitätsdateien Vorrang vor den vom Agenten bereitgestellten zu geben scheint, werde ich immer als falscher Benutzer authentifiziert.

0

1 Antwort auf die Frage

0
grawity

Es gibt keine Möglichkeit, genau das zu tun (abgesehen von der Umbenennung von id_rsa in id_whatever).

Die eigentliche Frage scheint jedoch zu sein: "Wie mache ich es, ssheinen bestimmten Agent-Only-Key zu bevorzugen " Dies ist eigentlich etwas einfacher zu beantworten - Sie können dies mit derselben IdentityFile(-i) -Option wie immer tun .

Verwenden Sie ssh-add -Lzunächst den öffentlichen Schlüssel vom Agenten in eine Datei. dann zeigen Sie IdentityFileauf den extrahierten öffentlichen Schlüssel. ssh akzeptiert es auch ohne den privaten Teil und verwendet automatisch ssh-agent zur Authentifizierung.

Interessanterweise akzeptiert "-i" auch öffentliche Schlüssel (wenn der passende private Schlüssel vom Agenten bereitgestellt wird). Ich habe das nicht irgendwo dokumentiert gesehen. Können Sie einen Link angeben? Noch wichtiger ist jedoch, dass mein Agent mehrere Schlüssel verwaltet, und ich würde es wirklich vorziehen, wenn SSH automatisch den passenden Schlüssel aus diesen auswählt, anstatt dass ich den öffentlichen Schlüssel manuell für den richtigen Schlüssel extrahiere. sschuberth vor 7 Jahren 0
Und wie genau soll SSH automatisch den passenden Schlüssel auswählen, wenn Sie sich weigern, ihm zu sagen, welchen Schlüssel er auswählen soll? Diese Informationen können nicht vom Server abgerufen werden. Sie können lediglich alle vorhandenen Schlüssel ausprobieren und feststellen, ob der Server einen von ihnen akzeptiert. grawity vor 7 Jahren 0
Genau genommen sollte SSH sie alle ausprobieren, aber nur die, die vom Agenten bereitgestellt wurden. sschuberth vor 7 Jahren 0