Pull to refresh

Comments 14

Статья вида "имея рутовый доступ на машине, можно делать с ней что угодно!".

Ну камон. Даже если бы условный админ на подконтрольной машине не использовал SSH Agent, а исправно вводил пароль руками, этот пароль можно было бы перехватить и ходить с ним куда угодно.

Поэтому не надо на промежуточных хопах делать ни того, ни другого. См. следующую ветку комментариев.

$ ssh -J <jump server1>,<jump server2>,<jump server3> <remote server>

Я что-то не пойму, зачем здесь -A

Если кто-то навертел такие безопасные хосты, что на них попасть по-человечески нельзя, то к нему и вопросы, откуда в такой безопасной конфигурации взялась малварь которая стырила проброшенные ключи, ключи сохранённые локально на хосте и всё что набирали с клавки

+1 к ProxyJump'у. Ожидал в статье ответ на вопрос "как безопасно подключиться через цепочку серверов, которым мы не доверяем", но его там почему-то нет. А пробросом ssh-agent'а просто не надо пользоваться и всё.

Если кто-то навертел такие безопасные хосты, что на них попасть по-человечески нельзя

не всегда «навертел», иногда, например, это ipv6-only и ipv4-only хосты в цепочке. ну или всевозможные ркн/анти-ddos/etc…

А где компрометация приватных ключей?

Юзер указал опцию, что нужно пробросить сокет ssh-agent, который используется для аутентификации с ключами в памяти. Однако внезапно SSH пробросил сокет ssh-agent, и, что дважды внезапно, им можно воспользоваться для аутентификации.

Есть три решения этой проблемы:

  1. Использовать ssh -J / ProxyJump, в этом случае не нужен SSH agent

  2. Использовать ключ ssh-add -c, в этом случае для каждого использования SSH ключа будет запрашиваться подтверждение

  3. Использовать ограничения для ключей (OpenSSH v8.9). Кстати, это умеет KeePass KeeAgent:

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

потому что им пользуются и другие люди

И этот человек еще пытается учить кого-то безопасности. Я то думал, как минимум секретность ключа надо научиться соблюдать.

в корпоративных окружениях доступ к уязвимым серверам с личной машины — не очень хорошая политика безопасности

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

В оригинале

In enterprise environments, accessing sensitive servers from your personal machine is not a great security policy.

Почувствуйте разницу: sensitive не значит уязвимый

We would like to do so without having to store our SSH private key on the jumphost because it is shared between other people.

Имеется ввиду не ключ, а хост. Трудности понимания ...

Я надеялся, что статья расскажет как извлечь приватный ключ из агента примерно как тут

Думал тут будет что-то про то, как удалённо вытащить приватный ключ из ssh-агента, а тут по сути пересказано предостережение, которое во всех манах пишут - что рут на удалённой системе может авторизоваться через проброшенный агент.

Как с этим бороться? Можно для критичных систем использовать аппаратный токен, который требует физического взаимодействия при каждой авторизации (типа yubikey). Можно вместо ssh-agent использовать gpg-agent, который умеет хранить ssh-ключи и умеет также на каждую попытку авторизации запрашивать подтверждение.

который требует физического взаимодействия при каждой авторизации (типа yubikey). Можно вместо ssh-agent использовать gpg-agent, который умеет хранить ssh-ключи и умеет также на каждую попытку авторизации запрашивать подтверждение.

хм, запуск плейбука ansible на пару десятков хостов превратится в неплохое такое развлечение

Sign up to leave a comment.