Secure Shell (SSH) – це важливий інструмент для системних адміністраторів, розробників і всіх, хто керує віддаленими серверами. За допомогою SSH ви можете безпечно підключатися до віддаленої машини, виконувати команди, передавати файли та виконувати адміністративні завдання. У цій статті ми розглянемо 10 найпоширеніших команд SSH, які варто використовувати вже сьогодні.

1. Підключення до віддаленого сервера

Найпростіша команда SSH використовується для підключення до віддаленого сервера:

ssh user@remote_host

Замініть user на ваше ім’я користувача, а remote_host на IP-адресу або доменне ім’я сервера.

2. Підключення через певний порт

За замовчуванням SSH використовує порт 22, але ви можете вказати інший порт, якщо це необхідно:

ssh -p 2222 user@remote_host

Це корисно, якщо SSH-сервер налаштовано для роботи на нестандартному порту.

3. Використання ключів SSH для автентифікації

Замість використання пароля ви можете автентифікуватися за допомогою SSH-ключа:

ssh -i /path/to/private_key user@remote_host

Згенерувати SSH-ключ можна за допомогою

ssh-keygen -t rsa -b 4096

Це підвищує безпеку і позбавляє від необхідності щоразу вводити пароль.

4. Запуск команд на віддаленому сервері

Ви можете виконати одну команду на віддаленому сервері, не відкриваючи інтерактивний сеанс:

ssh user@remote_host "ls -l /var/www/html"

Це корисно для швидкого виконання адміністративних завдань.

5. Копіювання файлів за допомогою SCP

Протокол безпечного копіювання (SCP) дозволяє передавати файли між локальними і віддаленими машинами:

scp file.txt user@remote_host:/remote/directory/

Для рекурсивного копіювання каталогу:

scp -r /local/directory user@remote_host:/remote/directory/

6. Копіювання файлів за допомогою rsync

Альтернативою SCP є rsync, яка є більш ефективною для синхронізації файлів:

rsync -avz /local/directory user@remote_host:/remote/directory

Вона мінімізує передачу даних, надсилаючи лише відмінності між файлами.

7. Налаштування тунелювання по SSH

Тунелювання SSH дозволяє безпечно перенаправляти мережевий трафік. Щоб створити локальний тунель:

ssh -L 8080:localhost:80 user@remote_host

Це перенаправить трафік з вашого локального порту 8080 на порт 80 віддаленого сервера.

8. Зворотне тунелювання по SSH

Зворотне тунелювання дозволяє віддаленому серверу отримати доступ до вашої локальної машини:

ssh -R 9090:localhost:22 user@remote_host

Це корисно для доступу до системи за брандмауером.

9. Мультиплексування SSH-з’єднань

Якщо ви часто підключаєтеся до одного і того ж сервера, ви можете прискорити роботу SSH, увімкнувши мультиплексування:

ssh -o ControlMaster=yes -o ControlPath=~/.ssh/socket user@remote_host

Це зменшує накладні витрати на автентифікацію для декількох сеансів SSH.

10. Завершення сеансу SSH

Щоб завершити сеанс SSH, просто введіть

exit

Або використовуйте ескейп-послідовність:

~.

Це корисно, коли з’єднання не реагує на запити.