ssh (Secure Shell) — утилита для безопасного удалённого доступа к серверам и управления ими. Использует шифрование, поддерживает аутентификацию по паролю и ключам, позволяет делать туннели, прокси и многое другое.
Синтаксис:ssh [опции] user@host [команда]
Основные опции:
| Опции | Описание |
|---|---|
| -p <порт> | подключение к нестандартному порту |
| -i <ключ> | указать приватный ключ |
| -L <локальный:хост:порт> | локальный проброс порта |
| -R <удалённый:хост:порт> | удалённый проброс порта |
| -D <порт> | динамический SOCKS-прокси |
| -J user@jump | ProxyJump (через промежуточный сервер) |
| -v / -vv | подробный вывод (для отладки) |
SSH Jump Host (Bastion)
Получение доступа к серверам в локальной сети через один из них, SSH которого открыт «наружу».
Пример настройки (~/.ssh/config):
Host bastion
HostName 177.0.57.70
User fox
Host server-*
ProxyJump bastion
User root
Выполнив команду:
ssh server-5
Подключение пойдёт через bastion.
Проброс портов (Port Forwarding)
Локальный (к сервису внутри сети):
ssh -L 7777:localhost:80 user@server
Теперь localhost:7777 на клиенте ведёт к server:80.
Удалённый (сервисы на клиенте доступны с сервера):
ssh -R 5050:localhost:80 user@server
Динамический (SOCKS-прокси):
ssh -D 1080 user@server