Пытаюсь разобраться с ssh и с тем как это работает. Нужно создать Jump server, схема простая:
local machine --> jump_host_server --> Remote server
Всё должно быть очень просто:
- На Jump Server хранится мой pub key
- На Remote Server хранится pub key Jump Server'а
- Мой локальный pub key НЕ хранится на Remote Server
- Доступ должен быть разрулен через authorized_keys на jump server
Какие шаги я предпринял:
- На сервере который играет роль Jump Server в authorized_keys я добавил свой pub_key и добавил настройки command="echo 'No command'",no-pty,port-forwarding,permitopen="remote_server_ip_address:22" ssh-rsa AAAAB3N
- На Remote Server я добавил в authorized_keys pub_key jump server'а
Доступ должен происходить посредством команды
ssh -J jump_server@ip_address remote_server@ip_address
И всё даже работает! Но.....
- После этих манипуляций я могу зайти на ssh remote_server@ip_address напрямую, что как бы очень плохо и не должно происходить (я не создавал алиасы в ~/.ssh/config если что).
- Если удалю pub_key jump_server'а с Remote server'а то и я не смогу подключиться к remote_server@ip_address напрямую
- Но как только я верну pub_key Jump Server'а в authorized_keys на Remote Server, то я обратно получаю ПРЯМОЙ доступ через ssh remote_server@ip_address
Немного подытожив:
- Доступ к Remote Server должен происходить исключительно через Jump Server
- Права доступа к Remote Server'ам должны разруливаться через authorized_keys на Jump Server
- Пользватель не должен иметь доступ к Jump Server, только использовать его как что-то вроде Proxy для перехода к другим удалённым серверам. Что разруливается через authorized_key через command="echo 'No command'",no-pty(блокируем консоль (no-pty), и команда на исполнения будет echo)
- Контроль доступа к Remote Server'ам осущетсвляется через настройку permitopen="remote_server_ip_address:22" в authorized_keys для каждого pub_key индивидуально
И главные вопросы:
- По какой причине я имею прямой доступ через ssh remote_server@ip_address, если моего pub_key не хранится в authorized_keys на Rempte Server'e?
- Если я закоментирую на Jump Server'е в authorized_keys свой pub_key, я не могу получить доступ к Remote Server через команду ssh -J jump_server@ip_address remote_server@ip_address, но получаю доступ напрямую через ssh remote_server@ip_address что происходит?