Управление доступом по ssh
Есть несколько способов для этого:
-
Парольный доступ. Пожалуйста, не пользуйтесь им. Вроде как это звучит очень просто, но сервак становится уязвимым к перебору паролей, пароли надо где-то хранить, общие учетки растекаются по куче людей и вообще неизвестно куда, записываются на бумажки и т.п. Вдобавок с парольным доступом есть ограничения на многие действия — тяжело что-то автоматизировать, когда надо пароль пробрасывать. Есть
sshpass
, но его стоит использовать только в очень крайних случаях. -
Ключевой доступ. По умолчанию используйте его. Он надежнее, позволяет более гранулировано управлять доступом и использовать ssh практически бесшовно. Есть и проблемы: например, не очень просто удалить ключ уволившегося сотрудника из всех мест или ограничить права уже внутри хоста. Но это решается, например, через системы конфигурации типа Puppet или Ansible.
-
Доступ через SSO. С этим вариантом я столкнулся на новой работе. Суть заключается в том, что никто не дает доступа к серверам напрямую — только через промежуточный агент, который управляет доступом. Банальный вариант — вы запрашиваете доступ к определенному серверу, а после одобрения подключаетесь к серверу-агенту, вводите свои LDAP-данные и работаете дальше. Пример из интернета. Этот подход хорош для большой организации — контролируемый менеджмент ключей, возможность аудита, ведения журналов доступа и т.п. Но для рядового сотрудника это не очень удобно — возникают многие проблемы парольного доступа. Например, уже не скачаешь нормально файл по scp через промежуточный узел или не пробросишь чужие порты.