ssh
15 commands
15 shown
Подключиться с конкретным ключом
Явно указать файл идентификации
ssh -i ~/.ssh/id_ed25519 user@host
ProxyJump через бастион
Прыжок через бастион до внутреннего хоста
ssh -J bastion.example.com user@internal-host
Многоуровневый ProxyJump
Цепочка нескольких jump-хостов в одной команде
ssh -J user@bastion1,user@bastion2 user@target
Локальный проброс порта
Пробросить localhost:5432 на db.internal:5432 через бастион
ssh -L 5432:db.internal:5432 user@bastion -N
Удалённый проброс порта
Опубликовать локальный порт 3000 как 8080 на VPS
ssh -R 8080:localhost:3000 user@vps -N
Динамический SOCKS прокси
Создать локальный SOCKS5 прокси через VPS
ssh -D 1080 user@vps -N -f
Мультиплексирование SSH
Переиспользовать существующее соединение для последующих команд
ssh -o ControlMaster=auto -o ControlPath=~/.ssh/mux-%r@%h:%p -o ControlPersist=10m user@host
Выполнить команду удалённо
Выполнить команду по SSH без интерактивной оболочки
ssh user@host 'sudo systemctl status nginx'
Скопировать файл через SCP
Рекурсивное копирование на нестандартном порту
scp -r -P 2222 ./dist/ user@host:/var/www/app/
Проброс SSH агента
Пробросить SSH агент на удалённый хост (использовать осторожно)
ssh -A user@bastion
Добавить ключ в агент
Запустить агент и загрузить ключ для сессии
eval $(ssh-agent) && ssh-add ~/.ssh/id_ed25519
Запись хоста в ssh_config
Псевдоним: команда 'ssh dev' применяет все настройки
cat >> ~/.ssh/config <<'EOF'
Host dev
HostName 10.0.0.5
User ubuntu
IdentityFile ~/.ssh/dev_key
ProxyJump bastion
EOF
Escape-последовательности в сессии
Завершить зависшую SSH-сессию: тильда затем точка
~.
Проверить host key SSH сервера
Получить и вывести fingerprint host keys без подключения
ssh-keyscan -t ed25519,rsa host 2>/dev/null | ssh-keygen -lf -
Ограничить authorized_keys
Принудительная команда и ограничение IP в authorized_keys
echo 'from="10.0.0.0/8",no-agent-forwarding,no-port-forwarding,command="/usr/bin/backup.sh" <pubkey>' >> ~/.ssh/authorized_keys
no commands match