Команди Linux і навички оболонки
ssh: з’єднання, яке керує вашою інфраструктурою
ssh — це не зручність, це транспорт, на якому виконується кожна операція на кожному сервері, а ~/.ssh/config — це контракт із вашим майбутнім «я» о 3 ранку. Псевдоніми хостів, записи IdentityFile, цілі ProxyJump і налаштування keepalive перетворюють запам’ятовані речення з прапорцями на команди з одного слова. Тунелі (-L, -R, -D) і мультиплексування ControlMaster перетворюють «оболонку» на командну поверхню інфраструктури, і обидва вони є роботою конфігураційного файлу, а не пам’яті.
Головне
- Помістіть усе в ~/.ssh/config: псевдоніми хосту з User, IdentityFile, IdentitiesOnly yes і ProxyJump роблять 'ssh prod-web1' одним словом; речення з прапорцем, набране однаково п’ять разів на день, є відсутнім записом конфігурації.
- Ключі — це єдина гра: ssh-keygen -t ed25519 -C 'role@team', загальнодоступна половина для authorized_keys і PasswordAuthentication no на сервері, коли ротація фактично працює.
- Перехідні хости згорнуті в один прапор: ssh -J bastion.corp internal-host або ProxyJump bastion.corp у блоці Host; старі заклинання ProxyCommand все ще працюють і більше не є нічиєю роботою.
- Тунелі призначені для кожного призначення: -L 5432:db.internal:5432 для доступу до бази даних, -D 1080 як прокладка SOCKS через сувору мережу, -R для показу локального вікна розробника, кожен з яких прив’язаний до localhost, якщо ви явно не розширите його.
- Мультиплексування 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 відповідає, «чому він вибрав цей ключ і цього користувача», не торкаючись сервера.
Польова нотатка
Одного разу я вимкнув PasswordAuthentication до того, як новий ключ був фактично в authorized_keys, і заблокував свою команду на вечір. Ритуал зараз: відкритий другий сеанс, підтверджено працездатність ключа та ServerAliveInterval у конфігурації, щоб неактивний бастіон відкидав NAT, щоб зупинити сеанси.
Часті запитання
По одному реченню: -Л, -Р, -Д?
-L передає локальний порт вперед до віддаленої служби, -R штовхає віддалений порт назад до вашої машини (знайте, що саме ви викрили), а -D відкриває динамічний проксі-сервер SOCKS через з’єднання.
Мій сеанс припиняється через кілька хвилин простою. Виправити?
Тайм-аут простою на NAT або брандмауері є звичайною причиною: установіть ServerAliveInterval на клієнті (і підтримуйте TCPKeepAlive у нормальному стані на сервері); те саме виправлення відноситься до конфігурації, яку ви використовуєте для стрибків бастіону з підвалу.
ssh-agent чи ключі без фрази-паролю?
Агент завжди: він зберігає розшифровані ключі за сеанс, тому ключі зберігають парольні фрази, а автоматизація залишається неінтерактивною; ForwardAgent так, на надійному бастіоні, добре, і ssh-add -l повідомляє вам, що завантажено, перш ніж ви збрешете собі.
Як мені припинити повторне введення специфікацій тунелю?
Рядки LocalForward і RemoteForward всередині блоків Host: «ssh dbtunnel» виконує все; один запис для кожної мети зберігає файл читабельним і дозволяє аудиту точно бачити, хто що пересилає.
Допомога Kinetikatech: команди linux і навички оболонки
Вам не обов'язково ставати експертом із команди linux і навички оболонки: Команди та сценарії, які вирішують, чи керує адміністратор сервером, чи бореться з ним: шукайте, трансформуйте, пересилайте та контролюйте текст і процеси за допомогою інструментів, які присутні в кожній базовій установці. Саме для цього й існує служба Безпека серверів Linux та Адміністрування серверів: налаштування, посилення захисту, моніторинг і жива людина на зв'язку цілодобово.