Хватит запоминать IP-адреса
Как выглядит типичный день системного администратора? ssh root@192.168.1.14… пароль… ошибка… ssh -i ~/.ssh/my_key.pem ubuntu@ec2-54-23-11-12.compute.amazonaws.com…
Если вы узнали себя, вы теряете время. SSH — это не просто программа для удаленного доступа. Это мощнейший транспортный протокол, который умеет пробрасывать порты, работать через прокси, использовать псевдонимы и ускорять соединения.
Сегодня мы перейдем от уровня «ввел IP и зашел» к уровню «SSH Power User».
1. Магия ~/.ssh/config: Забудьте про IP и ключи
Это главная суперсила. Вместо того чтобы запоминать IP, пользователей и пути к ключам для каждого из 50 серверов, вы описываете их один раз в файле конфигурации.
Откройте (или создайте) файл ~/.ssh/config на своей локальной машине:
Bash
nano ~/.ssh/config
И добавьте туда свои серверы:
Фрагмент кода
# Обычный сервер
Host web01
HostName 192.168.10.5
User debian
Port 2222
# Сервер AWS с ключом
Host aws-prod
HostName ec2-55-12-13-14.compute.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/aws_prod_key.pem
# Глобальные настройки для всех хостов
Host *
# Отключаем проверку ключей хоста (для тестовых сред, где IP часто меняются)
# StrictHostKeyChecking no
# Держим соединение живым (чтобы не отваливалось при простое)
ServerAliveInterval 60
Результат: Вместо: ssh -i ~/.ssh/aws_prod_key.pem -p 22 ubuntu@ec2-55-12-13-14.compute.amazonaws.com Вы пишете: ssh aws-prod
Работает также для scp и rsync: scp file.txt aws-prod:/tmp/
2. SSH-Туннели: Ваш личный VPN
Представьте ситуацию: У вас есть сервер БД (MySQL/PostgreSQL), который слушает порт 3306 или 5432. Но этот порт закрыт фаерволом снаружи (и это правильно!). Доступ есть только по SSH (22 порт). Вам нужно подключиться к БД через DBeaver или HeidiSQL с вашего ноутбука.
«Админ» временно открывает порт 3306 для мира (опасно!) или ставит VPN. «Архитектор» использует Local Port Forwarding (Локальный проброс портов).
Команда:
Bash
# Синтаксис: -L [ЛокальныйПорт]:[КудаИдем]:[УдаленныйПорт]
ssh -L 3306:127.0.0.1:3306 web01
Что происходит: SSH открывает порт 3306 на вашем ноутбуке. Любой запрос, который вы пошлете на свой локальный 3306, будет зашифрован, передан через SSH-туннель на сервер web01 и там «выплюнут» на 127.0.0.1:3306.
Теперь в DBeaver вы подключаетесь к localhost:3306 — и вы в базе. Безопасно, зашифровано, без VPN.
3. Dynamic Port Forwarding: Прокси за 5 секунд
Ситуация: Вы в кафе или отеле с открытым Wi-Fi. Вы не хотите, чтобы кто-то перехватывал ваш трафик. Или вам нужно зайти на внутренний корпоративный сайт, который доступен только из офисной сети.
Используем SSH как SOCKS-прокси.
Команда:
Bash
# -D [ЛокальныйПорт]
# -N (не выполнять команду, просто держать соединение)
ssh -D 8080 -N office-server
Теперь идете в настройки браузера (или плагина типа FoxyProxy) и указываете SOCKS5 прокси: 127.0.0.1, порт 8080.
Результат: Весь ваш браузерный трафик идет через зашифрованный туннель до office-server и выходит в интернет оттуда. Для всего мира вы теперь сидите в офисе.
4. Мультиплексирование: Ускоряем подключение
Вы замечали, что ssh подключается не мгновенно? Рукопожатие, обмен ключами… Если вы запускаете скрипт, который делает 10 подключений подряд (например, в цикле), это занимает время.
SSH умеет использовать одно установленное TCP-соединение для нескольких сессий. Это называется ControlMaster.
Добавьте в ~/.ssh/config:
Фрагмент кода
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
ControlMaster auto: Пытаться использовать мастер-соединение.ControlPath: Где хранить сокет (файл связи). (Создайте папкуmkdir ~/.ssh/sockets).ControlPersist 600: Держать соединение открытым в фоне 600 секунд (10 минут) после выхода.
Результат: Первое подключение ssh web01 займет обычные 1-2 секунды. Второе, третье и десятое подключение (в соседнем окне терминала) произойдет мгновенно (0 секунд), потому что канал уже открыт.
Инструмент определяет мастера
SSH — это не просто «черное окно с текстом». Это швейцарский нож для сетевого взаимодействия.
Настроив ~/.ssh/config один раз, вы сэкономите себе часы ввода команд в год. Освоив туннели (-L и -D), вы перестанете зависеть от VPN и открытых портов. Включив мультиплексирование, вы ускорите свои скрипты и Ansible-плейбуки.
Перестаньте быть «админом, который печатает». Станьте «архитектором, который управляет».
Теги: #linux #ssh #security #networking #sysadmin #lifehack #cli #туннели
Хотите стать архитектором будущего, а не просто админом? Эта статья — лишь верхушка айсберга. В нашем Telegram-канале «Admin Future» мы каждый день публикуем системные гайды, готовые скрипты, AI-лайфхаки и чеклисты, которые не найти в Google. Мы не просто постим команды — мы строим библиотеку знаний для тех, кто хочет расти от админа до архитектора. Подписывайтесь и становитесь экспертом: Admin Future