Перенаправление(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 $