Шпаргалка по SSH
Удобный для поиска и печати справочник по SSH — подключение, ключи, конфигурация, туннелирование, SCP/SFTP и проброс агента. Бесплатно.
Подключение
10ssh user@host
Подключиться как пользователь к хосту
ssh -p 2222 user@host
Подключиться по нестандартному порту
ssh -i ~/.ssh/id_ed25519 user@host
Использовать конкретный ключ идентификации
ssh user@host 'uptime'
Выполнить одну удалённую команду и выйти
ssh -v user@host
Подробный вывод для отладки (-vvv для большего)
ssh -t user@host 'sudo -i'
Принудительно псевдотерминал (для интерактивных команд)
ssh -X user@host
Включить проброс X11
ssh -o ServerAliveInterval=60 user@host
Слать keepalive, чтобы избежать таймаутов
exit / Ctrl-D
Закрыть удалённую сессию
~.
Принудительно отключить зависшую сессию
Генерация ключей
8ssh-keygen -t ed25519 -C 'you@example.com'
Сгенерировать современную пару ключей Ed25519
ssh-keygen -t rsa -b 4096
Сгенерировать пару ключей RSA 4096 бит
ssh-keygen -t ed25519 -f ~/.ssh/work
Записать ключ в конкретный файл
ssh-keygen -p -f ~/.ssh/id_ed25519
Сменить парольную фразу существующего ключа
ssh-keygen -y -f ~/.ssh/id_ed25519
Вывести публичный ключ из приватного
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
Показать отпечаток ключа
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub
Показать изображение randomart отпечатка
ssh-keygen -R host
Удалить ключ хоста из known_hosts
Установка публичных ключей
7ssh-copy-id user@host
Скопировать ваш публичный ключ по умолчанию на сервер
ssh-copy-id -i ~/.ssh/work.pub user@host
Скопировать конкретный публичный ключ
ssh-copy-id -p 2222 user@host
Скопировать ключ через нестандартный порт
cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
Ручное копирование, если ssh-copy-id отсутствует
chmod 700 ~/.ssh
Корректные права на каталог .ssh
chmod 600 ~/.ssh/authorized_keys
Корректные права на authorized_keys
pbcopy < ~/.ssh/id_ed25519.pub
Скопировать публичный ключ в буфер обмена (macOS)
Конфиг SSH (~/.ssh/config)
10Host myserver
Псевдоним: подключение через `ssh myserver`
HostName 203.0.113.10
Реальное имя хоста или IP для псевдонима
User deploy
Имя пользователя по умолчанию для этого хоста
Port 2222
Порт по умолчанию для этого хоста
IdentityFile ~/.ssh/work
Ключ для этого хоста
IdentitiesOnly yes
Предлагать только указанный ключ
ForwardAgent yes
Пробросить SSH-агент на этот хост
Host *.example.com
Сопоставление по шаблону для домена
Host *
Глобальные настройки для всех хостов
ServerAliveInterval 60
Интервал keepalive для всех хостов
Проброс портов / туннелирование
7ssh -L 8080:localhost:80 user@host
Local: достичь host:80 через локальный 8080
ssh -L 5432:db.internal:5432 user@host
Локальный проброс на третий хост через сервер
ssh -R 9000:localhost:3000 user@host
Remote: открыть ваш локальный 3000 как host:9000
ssh -D 1080 user@host
Dynamic: SOCKS-прокси на локальном порту 1080
ssh -N -L 8080:localhost:80 user@host
Только туннель, без удалённой оболочки
ssh -f -N -L 8080:localhost:80 user@host
Открыть туннель в фоне
ssh -g -L 8080:localhost:80 user@host
Разрешить другим хостам использовать локальный проброс
Прыжковые хосты / бастионы
5ssh -J jump@bastion user@target
Перейти через бастион к цели
ssh -J h1,h2 user@target
Цепочка из нескольких прыжковых хостов
ProxyJump bastion
Эквивалент -J в конфиге
ProxyCommand ssh -W %h:%p bastion
Старый прыжок на основе ProxyCommand
ssh -o ProxyJump=bastion user@target
Встроенная опция ProxyJump
Передача файлов (scp и sftp)
7scp file user@host:/path/
Скопировать локальный файл на сервер
scp user@host:/path/file .
Скопировать удалённый файл в текущий каталог
scp -r dir/ user@host:/path/
Рекурсивно скопировать каталог
scp -P 2222 file user@host:/path/
Скопировать через нестандартный порт (заметьте заглавную -P)
sftp user@host
Начать интерактивную сессию SFTP
put localfile / get remotefile
Загрузка / скачивание внутри SFTP
rsync -avz -e ssh dir/ user@host:/path/
Эффективная синхронизация по SSH (с возобновлением)
ssh-agent и проброс
7eval "$(ssh-agent -s)"
Запустить агент в текущей оболочке
ssh-add ~/.ssh/id_ed25519
Добавить ключ в агент
ssh-add -l
Список ключей, загруженных в агент
ssh-add -D
Удалить все ключи из агента
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Хранить парольную фразу в keychain macOS
ssh -A user@host
Пробросить агент для этого подключения
ForwardAgent yes
Эквивалент проброса агента в конфиге
Нет записей, соответствующих «:q».
Нужна помощь?
Возникла проблема с этим инструментом? Сообщите нам.