Ich habe zwei private SSH-Schlüssel:
- eine, um auf meine persönlichen Maschinen zuzugreifen ,
- eine, um bei meinem Job auf Server zuzugreifen .
Ich füge diese beiden Schlüssel meinem SSH-Agenten mit hinzu ssh-add
.
Wenn ich dies tue, ssh -A root@jobsrv
möchte ich die Agentenauthentifizierung nur für meinen Jobschlüssel weiterleiten (den, mit dem ich eine Verbindung herstelle jobsrv
).
Ich möchte dies, weil jeder, der Root-Zugriff hat, jobsrv
meinen Agenten verwenden kann, um sich bei meinen persönlichen Computern zu authentifizieren.
Gibt es eine Möglichkeit, diese Isolation zu erreichen?
ssh -A -i myjobkey_rsa root@jobsrv
erlaubt dem jobsrv-Computer weiterhin, auf meinen lokalen Computeragenten zuzugreifen und sich auf meinem persönlichen Server mit dem anderen (persönlichen) Schlüssel zu authentifizieren ...Antworten:
Um die
ssh(1)
Verwendung eines bestimmten Schlüssels zu erzwingen , auch wennssh-agent(1)
mehrere angeboten werden, verwenden Sie die DirektiveIdentityFile
undIdentitiesOnly
in~/.ssh/config
, z.Siehe
ssh_config(5)
für Details.quelle
IdentitiesOnly
Dies gilt, wenn Sie versuchen, eine Verbindung zum Remote-Server herzustellen. Sobald Sie verbunden sind und die-A
Agentenweiterleitung aktiviert ist, wird der gesamte Schlüsselbund weitergeleitet.Leider glaube ich es nicht möglich ist , dies achive leicht im gegenwärtigen Augenblick . Man könnte zwei Agenten verwenden (einen für jeden Schlüssel), so dass kein Agent alle Schlüssel hält. Aber es wäre ziemlich umständlich, damit zu arbeiten.
Aus diesem Grund wurde ein Fehlerbericht (Erweiterung) geöffnet. Es gibt auch diesen ähnlichen Bericht .
quelle