Как использовать файл сокета для доступа к серверу, если включена переадресация агента SSH

Как использовать файл сокета для доступа к серверу, если включена переадресация агента SSH

У меня есть хост-бастион. Я подключаюсь к хосту-бастиону, используя имя пользователя/пароль. И у меня есть закрытый ключ для целевого сервера. Поток:

Local Machine -> Bastion -> Destination

Я знаю, что это опасно использовать.Пересылка агентапотому что кто-то может прочитать моефайл сокета(Если у них есть root-доступ к хосту-бастиону), в то время как мойсессия открытаи получить доступ к целевому серверу - поэтому я должен использоватьProxyCommand!

Теперь я простотестирование как получить доступ к целевому серверубез закрытого ключаесли бы у меня былдоступ к серверу бастиона- насколько опасна переадресация агентов.

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

Вопросы:

  • Я увидел, что информация об активном агенте находится в следующем месте на сервере бастиона: Пример: /tmp/ssh-{имя}/agent.[PID]. У меня есть root-доступ, но я не могу прочитать этот файл. Я думаю, толькодостаточно идентификатора процессадля этого файла,не так ли?

  • если включена переадресация агента, где я могу найти файл сокета? Я пытаюсь найти в/proc/pid/fd/место, где я увидел несколько файлов сокетов.

  • как я могу получить доступ к целевому серверу с помощью файла сокета? (Как получить доступ к целевому серверу через ssh с помощью файла сокета)

Он попытался найти файлы сокетов здесь:

 /proc/PID/fd/

А затем просто попробуйте эту команду для каждого сокета 3,4,5,9,11:

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

Результат:

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

введите описание изображения здесь

Бревно:

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

решение1

Я только что изменил значение, SSH_AUTH_SOCKзатем у ssh-add -lменя был загружен ключ.

Подводя итог: опасно использовать переадресацию агента, потому что если у вас есть root-доступ к хосту бастиона - вы можете украсть ключ, вся сессия открыта. Вам просто нужно его изменить SSH_AUTH_SOCKи все!

Связанный контент