Verwenden des Schlüssels eines Computers, mit dem ich über SSH verbunden war?

271
user3599969

Ich habe derzeit ein System, bei dem ich einen Desktop verwende, um eine Verbindung zu einem Gateway und dann zu mehreren Servern von dort herzustellen. Der ssh-Schlüssel meines Desktops befindet sich im Gateway und auf den anderen Servern, und ich führe Skripts vom Desktop aus, die diese Verbindung verwenden

ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\"" 

Das Problem ist, wenn ich eine Verbindung von meinem Heimcomputer zum Hauptdesktop herstelle und das gleiche Skript verwende, wird versucht, die ssh-Taste meines Heimcomputers zu verwenden, selbst wenn ich beim Verbindungsaufbau mit dem Desktop keine -A-Verbindung verwende. Gibt es eine Möglichkeit, anzugeben, welcher ssh-Schlüssel bei den Verbindungen verwendet werden soll?

Ich habe es versucht

ssh -i ~/.ssh/id_rsa -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\"" 

aber es funktioniert immer noch nicht. Ich verbinde mich nicht mit der Hauptmaschine mit -A, ich mache nur ssh -i .ssh/loac_id_rsa user@main.

1

1 Antwort auf die Frage

1
Law29

Das ist bizarr. Hast du vielleicht etwas in .ssh / config-Dateien?

Versuchen Sie es auszuführen

ssh-add ~/.ssh/id_rsa 

wenn Sie auf Ihrem Desktop ankommen

BEARBEITEN:

Und wenn es eval nicht zuerst versucht ssh-agent -s.

Da hat gearbeitet:

-Abedeutet "Verbindung zum Authentifizierungsagenten". Für Ihr Gateway muss der Authentifizierungsagent auf Ihrem Desktop ausgeführt werden, um Ihre Verbindung an den geschützten Host weiterzuleiten. Der Authentifizierungsagent wird wahrscheinlich automatisch gestartet, wenn Sie sich mit Ihrer grafischen Benutzeroberfläche auf Ihrem Desktop anmelden. Wenn Sie sich jedoch mit ssh anmelden, funktioniert er nicht wie gewünscht (er benötigt nur Ihren Home-Schlüssel und ssh-add funktioniert nicht ). Sie starten also einen neuen und stellen eine Verbindung dazu her, fügen Ihren Schlüssel hinzu, und es funktioniert.

Sie könnten sich wahrscheinlich etwas vereinfachen und ersetzen

home$ ssh -i .ssh/loac_id_rsa user@main desk$ eval `ssh-agent -s` desk$ ssh-add ~/.ssh/id_rsa desk$ ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\"" 

mit

home$ ssh -i .ssh/loac_id_rsa user@main ssh-agent bash desk$ ssh-add ~/.ssh/id_rsa desk$ ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\"" 

oder wenn Sie dies regelmäßig tun, können Sie mit dem Inhalt von herumspielen ~/.ssh/rc(seien Sie jedoch vorsichtig, da Sie bei einem Bruch möglicherweise nicht in der Lage sind, sich über ssh anzumelden, müssen Sie dies reparieren, indem Sie sich an der Konsole anmelden.) .

Vielen Dank. `ssh-add` hat zuerst nicht funktioniert, aber ich habe` eval \ `ssh-agent -s \` `und jetzt funktioniert es. user3599969 vor 8 Jahren 0