Документация Инструкции Перенаправление SSH ключей


Перенаправление(forwaring) SSH ключей помогает избежать лишнего копирования вашего приватного SSH ключа в ситуациях, когда вам нужно подключаться с одного удаленного хоста на другой.


Допустим, у нас есть доступы на хосты A, B и C по SSH ключу, но топология сети такова, что с нашего локального компьютера мы можем попасть на хост А, и только у него есть связность с хостами B и C.
+--------+      +-------+      +-------+
| myhost | ---- | hostA | ---- | hostB |
+--------+      +-------+      +-------+
                    |
                    |
                +-------+
                | hostC |
                +-------+



В такой ситуации не следует копировать свой приватный SSH ключ на хост А, это небезопасно, особенно, когда доступ на хост А имеете не только вы.

Решением здесь будет настройка перенаправления SSH ключа - SSH key forwarding. Для этого достаточно включить перенаправление на SSH сервере на хосте А.
sed -i '/^#AllowAgentForwarding\ yes/s/#//' /etc/ssh/sshd_config


Дальше на нашем локальном хосте запускаем сессию SSH агента:
ssh-agent bash


И добавляем наш приватный SSH ключ:
ssh-add ~/.ssh/id_rsa

По необходимости мы добавить больше одного приватного SSH ключа.
Дальше, подключившить к хосту A, можем подключаться к хостам B и C, не забываем передаем команде ssh ключ '-A', которая включает форвардинг ключа:
myhost $ ssh -A ubuntu@hostA

Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-126-generic x86_64)
hostA $ ssh ubuntu@hostB

Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-126-generic x86_64)
hostB $ exit

hostA $ ssh ubuntu@hostC

Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-126-generic x86_64)
hostC $