So verwenden Sie eine Socket-Datei, um auf den Server zuzugreifen, wenn die SSH-Agent-Weiterleitung aktiviert ist

So verwenden Sie eine Socket-Datei, um auf den Server zuzugreifen, wenn die SSH-Agent-Weiterleitung aktiviert ist

Ich habe einen Bastion-Host. Ich verbinde mich mit dem Bastion-Host mit Benutzername/Passwort. Und ich habe einen privaten Schlüssel für den Zielserver. Ablauf:

Local Machine -> Bastion -> Destination

Ich weiß, dass es gefährlich ist,Agentenweiterleitungweil jemand meineSocket-Datei(Wenn sie Root-Zugriff auf Bastion-Host haben), während meineSitzung ist geöffnetund auf den Zielserver zugreifen. Ich sollte alsoProxy-Befehl!

Jetzt bin ich nurtesten So greifen Sie auf den Zielserver zuohne privaten Schlüsselwenn ich habeZugriff auf den Bastion-Server- wie gefährlich ist die Agentenweiterleitung.

Host bast
     Hostname X.X.X.X
     ForwardAgent yes
     User bastion

Fragen:

  • Ich habe gesehen, dass es Informationen zum aktiven Agenten zum folgenden Speicherort auf dem Bastion-Server gibt: Beispiel: /tmp/ssh-{name}/agent.[PID]. Ich habe Root-Zugriff, aber ich kann diese Datei nicht lesen. Ich denke nurProzess-ID ist genugfür diese Datei,ist es nicht?

  • Wenn die Agentenweiterleitung aktiviert ist, wo finde ich die Socket-Datei? Ich versuche, sie unter/proc/pid/fd/Ort, wo ich mehrere Socket-Dateien gesehen habe.

  • Wie kann ich mithilfe der Socket-Datei auf den Zielserver zugreifen? (So greifen Sie mithilfe einer Socket-Datei per SSH auf den Zielserver zu)

Es wurde versucht, hier Socket-Dateien zu finden:

 /proc/PID/fd/

Und dann versuchen Sie einfach diesen Befehl für jeden Sockel 3,4,5,9,11:

ssh -p 2072  -o "ProxyCommand socat - UNIX-CLIENT:/proc/PID/fd/11" app@[DESTINATION_HOST_URL] 

Ergebnis:

2018/08/26 01:53:31 socat[13552] E connect(5, AF=1 "/proc/13510/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host

Bildbeschreibung hier eingeben

Protokoll:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Executing proxy command: exec socat - UNIX-CLIENT:/proc/14003/fd/11
debug1: permanently_set_uid: 0/0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: permanently_drop_suid: 0
2018/08/26 03:10:17 socat[14073] E connect(5, AF=1 "/proc/14003/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host

Antwort1

Ich habe gerade den Wert geändert, SSH_AUTH_SOCKin dem ssh-add -lich einen Schlüssel geladen hatte.

Zusammenfassend lässt sich sagen: Es ist gefährlich, Agent-Forwarding zu verwenden, denn wenn Sie Root-Zugriff auf den Bastion-Host haben, können Sie den Schlüssel stehlen, während die gesamte Sitzung geöffnet ist. Sie müssen ihn nur ändern SSH_AUTH_SOCKund das war’s!

verwandte Informationen