Команды Linux и навыки работы с оболочкой
ssh: соединение, которое управляет вашей инфраструктурой
ssh — это не удобство, это транспорт, на котором выполняется каждая операция на каждом сервере, а ~/.ssh/config — это контракт с вашим будущим «я» в 3 часа ночи. Псевдонимы хостов, записи IdentityFile, цели ProxyJump и настройки поддержки активности превращают запомненные предложения с флагами в однословные команды. Туннели (-L, -R, -D) и мультиплексирование ControlMaster — это то, что превращает «оболочку» в командную поверхность инфраструктуры, и оба они работают с файлом конфигурации, а не с памятью.
Главное
- Поместите все в ~/.ssh/config: псевдонимы хостов с User, IdentityFile, IdentitiesOnly yes и ProxyJump составляют одно слово «ssh prod-web1»; предложение с флагом, введенное одинаково пять раз в день, является отсутствующей записью в конфигурации.
- Ключи — единственная игра: ssh-keygen -t ed25519 -C 'role@team', публичная половина для авторизованных_ключей и PasswordAuthentication no на сервере, как только ротация действительно работает.
- Хосты перехода свернуты в один флаг: ssh -J bastion.corp Internal-Host или ProxyJump bastion.corp в блоке Host; старые заклинания ProxyCommand все еще работают и больше не являются чьей-либо работой.
- Туннели предназначены для каждой цели: -L 5432:db.internal:5432 для доступа к базе данных, -D 1080 как прокладка SOCKS через строгую сеть, -R для предоставления локального ящика разработчика, каждый из которых привязан к локальному хосту, если вы явно не расширите его.
- Мультиплексирование ControlMaster (ControlMaster auto, ControlPath ~/.ssh/cm-%r@%h:%p, ControlPersist 10m) останавливает повторное выполнение рукопожатий при каждом открытии и обеспечивает мгновенную работу нескольких окон на одном хосте.
- Keepalive поддерживает сеансы через NAT и отбрасывает брандмауэр бездействия: ServerAliveInterval 60 плюс ServerAliveCountMax 3 на стороне клиента большую часть времени превосходят загадочные отчеты «сессия завершилась через 4 минуты».
- Ограничьте опасный доступ: -N (без удаленной команды) для чистой переадресации портов, -n для пакетных заданий, считывающих со стандартного ввода, и Fail2ban плюс разумные MaxAuthTries, чтобы брутфорс умер в журналах, а не в учетных записях.
- Порядок отладки имеет значение: ssh -vvv показывает анализ конфигурации, согласование аутентификации и сбои каналов именно в этом порядке, а дамп хоста -G отвечает: «Почему он выбрал этот ключ и этого пользователя», не затрагивая сервер.
Заметка из практики
Однажды я отключил проверку подлинности пароля еще до того, как новый ключ оказался в авторизованных ключах, и заблокировал свою команду на вечер. Ритуал теперь: второй сеанс открыт, ключ работает, и ServerAliveInterval в конфигурации, поэтому бездействующий бастионный NAT прекращает убивать сеансы.
Частые вопросы
По одному предложению: -L, -R, -D?
-L передает локальный порт вперед к удаленной службе, -R передает удаленный порт обратно к вашей машине (точно знайте, что вы предоставили), а -D открывает динамический прокси-сервер SOCKS через соединение.
Моя сессия прерывается после нескольких минут простоя. Исправить?
Обычной причиной является тайм-аут простоя на NAT или брандмауэре: установите ServerAliveInterval на клиенте (и сохраните работоспособность TCPKeepAlive на сервере); то же самое исправление содержится в конфигурации, которую вы используете для прыжков в подвал-бастион.
ssh-агент или ключи без парольной фразы?
Агент всегда: он хранит расшифрованные ключи для каждого сеанса, поэтому ключи сохраняют парольные фразы, а автоматизация остается неинтерактивной; ForwardAgent да, на доверенном бастионе все в порядке, и ssh-add -l сообщит вам, что загружено, прежде чем вы солгаете себе.
Как прекратить повторно вводить спецификации туннеля?
Строки LocalForward и RemoteForward внутри блоков Host: затем все делает 'ssh dbtunnel'; одна запись для каждой цели делает файл читабельным и позволяет аудиту точно видеть, кто и что пересылает.
Как мы берём на себя команды linux и навыки работы с оболочкой
Вам не обязательно становиться экспертом в команды linux и навыки работы с оболочкой: Команды и сценарии сценариев, которые решают, управляет ли администратор сервером или борется с ним: поиск, преобразование, передача и контроль текста и процессов с помощью инструментов, которые есть в каждой базовой установке. Именно для этого и существует наша услуга Безопасность серверов Linux и Администрирование серверов — настройка, усиление защиты, мониторинг и живой человек на связи днём и ночью.