Шпаргалка по SSH

Ключи

Генерация ключа

ssh-keygen

Сменить пароль на ключ

ssh-keygen -p
  • ~/.ssh/id_rsa.pub - открытый ключ. Его копируют на сервера, куда нужно получить доступ;
  • ~/.ssh/id_rsa - закрытый ключ. Его нельзя никому показывать. В случае утечки - срочно менять ключ.

Копирование ключа на сервер

ssh-copy-id user@server

Если консоль будет ругаться на “неизвестный хост” (Warning: Permanently added the RSA host key for IP address 'x.x.x.x' to the list of known hosts.), то нужно создать файл ~/.ssh/config и прописать туда следующее:

UserKnownHostsFile ~/.ssh/known_hosts

Копирование файлов

С локальной машины на сервер

scp path/myfile user@8.8.8.8:/full/path/to/new/location/

С сервера на локальную машину

scp user@8.8.8.8:/full/path/to/new/location/ path/myfile

Удалённое исполнение кода

Удаленное выполнение команды

ssh user@server ls /etc/

Удаленное выполнение команды с использованием управляющего терминала

ssh user@server -t zsh

Проброс stdin/stdout

Удаленно выполнить команду и сохранить вывод в локальный файл

ssh user@server ls -l > /tmp/ls.txt

Локально выполнить команду и сохранить вывод в файл на сервере

ls -l | scp user@server:/tmp/ls.txt

scp “для бедных”:
(tar запаковывает файлы локально и результат пишет в stdout, откуда их читает ssh, передает всё это в удаленный stdin, где их читает tar (cd игнорирует stdin))

tar -c * | ssh user@server "cd /tmp/arch && tar -x"

Проброс X-сервера

Запуск Firefox

ssh -XYC user@server firefox

параметры:

  • -X - проброс X-сервера
  • -Y - проброс авторизации
  • -C - сжатие трафика

Безопасное подключение к windows-серверу
Не рекомендуется у Windows оставлять голый RDP наружу

ssh user@server rdesktop -k en-us 192.168.1.1 -g 1900x1200

Socks-proxy

Открытие порта для socks-proxy

ssh -D 8080 user@server

Теперь в браузере, указав localhost:8080 в качестве socks-proxy, можно ходить по безопасно сайтам (трафик зашифрован через ssh).