Secure Shell (SSH) – це важливий інструмент для системних адміністраторів, розробників і всіх, хто керує віддаленими серверами. За допомогою SSH ви можете безпечно підключатися до віддаленої машини, виконувати команди, передавати файли та виконувати адміністративні завдання. У цій статті ми розглянемо 10 найпоширеніших команд SSH, які варто використовувати вже сьогодні.
Найпростіша команда SSH використовується для підключення до віддаленого сервера:
ssh user@remote_host
Замініть user
на ваше ім’я користувача, а remote_host
на IP-адресу або доменне ім’я сервера.
За замовчуванням SSH використовує порт 22, але ви можете вказати інший порт, якщо це необхідно:
ssh -p 2222 user@remote_host
Це корисно, якщо SSH-сервер налаштовано для роботи на нестандартному порту.
Замість використання пароля ви можете автентифікуватися за допомогою SSH-ключа:
ssh -i /path/to/private_key user@remote_host
Згенерувати SSH-ключ можна за допомогою
ssh-keygen -t rsa -b 4096
Це підвищує безпеку і позбавляє від необхідності щоразу вводити пароль.
Ви можете виконати одну команду на віддаленому сервері, не відкриваючи інтерактивний сеанс:
ssh user@remote_host "ls -l /var/www/html"
Це корисно для швидкого виконання адміністративних завдань.
Протокол безпечного копіювання (SCP) дозволяє передавати файли між локальними і віддаленими машинами:
scp file.txt user@remote_host:/remote/directory/
Для рекурсивного копіювання каталогу:
scp -r /local/directory user@remote_host:/remote/directory/
Альтернативою SCP є rsync
, яка є більш ефективною для синхронізації файлів:
rsync -avz /local/directory user@remote_host:/remote/directory
Вона мінімізує передачу даних, надсилаючи лише відмінності між файлами.
Тунелювання SSH дозволяє безпечно перенаправляти мережевий трафік. Щоб створити локальний тунель:
ssh -L 8080:localhost:80 user@remote_host
Це перенаправить трафік з вашого локального порту 8080 на порт 80 віддаленого сервера.
Зворотне тунелювання дозволяє віддаленому серверу отримати доступ до вашої локальної машини:
ssh -R 9090:localhost:22 user@remote_host
Це корисно для доступу до системи за брандмауером.
Якщо ви часто підключаєтеся до одного і того ж сервера, ви можете прискорити роботу SSH, увімкнувши мультиплексування:
ssh -o ControlMaster=yes -o ControlPath=~/.ssh/socket user@remote_host
Це зменшує накладні витрати на автентифікацію для декількох сеансів SSH.
Щоб завершити сеанс SSH, просто введіть
exit
Або використовуйте ескейп-послідовність:
~.
Це корисно, коли з’єднання не реагує на запити.