linux-labs

Вики / Сеть

SSH-клиент (ssh, scp, туннели)

Команда OpenSSH 9.6 СетьSSHБезопасность

Подключение по SSH, копирование scp/rsync, ~/.ssh/config, проброс портов.

ssh — клиент для защищённого подключения к серверу (по умолчанию порт 22). Серверная часть — sshd; аутентификация — по ключам (см. «SSH-ключи»).

ssh user@host                     # подключиться
ssh -p 2222 user@host             # нестандартный порт
ssh user@host 'uptime; df -h'     # выполнить команду и выйти
ssh -v user@host                  # подробная отладка подключения

Чтобы не повторять параметры — алиасы хостов в ~/.ssh/config:

Host web
    HostName 192.168.1.10
    User deploy
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

Теперь просто ssh web. Полезно: ServerAliveInterval 60 (держать сессию), ProxyJump bastion (через бастион).

# копирование файлов
scp file user@host:/path/         # на сервер
scp user@host:/path/file .        # с сервера
scp -r dir user@host:/path/       # каталог
rsync -avz dir/ user@host:/path/  # эффективнее для больших/повторных (см. rsync)

# проброс портов
ssh -L 8080:localhost:80 user@host    # локальный 8080 → удалённый 80
ssh -D 1080 user@host                 # SOCKS-прокси через сервер
ssh -J bastion user@internal-host     # прыжок через бастион

Permission denied (publickey)

Ключа нет на сервере или права на клиенте/сервере неверные. Проверь ssh -v, наличие ключа (ssh-add -l), ~/.ssh/authorized_keys на сервере (см. «SSH-ключи»).

Host key verification failed

Ключ хоста изменился (переустановка/смена IP). Если ожидаемо — убери старую запись: ssh-keygen -R host. Если нет — это может быть MITM, проверь.

Connection timed out vs refused

timed out — не дошли (файрвол/маршрут/не та сеть); refused — дошли, но порт закрыт (sshd не запущен / другой порт).

Сессия рвётся по таймауту

ServerAliveInterval 60 в конфиге клиента.

ssh user@host ; ssh -p 2222 host
scp file user@host:/path/
ssh -L 8080:localhost:80 host     # локальный туннель
ssh -J bastion host               # через бастион
ssh-keygen -R host                # сбросить host key
~/.ssh/config: Host alias / HostName / User / Port / IdentityFile

См. также