20 распространенных команд SSH, которые вы должны использовать сегодня ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
13.12.2024

20 распространенных команд SSH, которые вы должны использовать сегодня

SSH (Secure Shell) – это широко используемый протокол для безопасного доступа к удаленным серверам. Он позволяет управлять удаленными системами и взаимодействовать с ними через зашифрованное соединение. Овладение основными командами SSH может значительно повысить вашу производительность и упростить управление удаленными серверами. Ниже приведены 20 распространенных команд SSH, которые должен знать каждый системный администратор, разработчик или любой человек, работающий с серверами.

1. Базовое SSH-соединение

Эта команда используется для подключения к удаленному серверу по SSH.

ssh имя пользователя@удаленный_хост
  • Замените username на ваше имя пользователя, а remote_host – на IP-адрес или доменное имя сервера.

Пример:

ssh user@example.com

2. Укажите порт

По умолчанию SSH использует порт 22. Если ваш сервер использует другой порт, укажите его с помощью флага -p.

ssh -p port_number username@remote_host

Пример:

ssh -p 2222 user@example.com

3. Копирование файлов с локального на удаленный с помощью scp

Используйте scp (безопасное копирование) для передачи файлов с локального компьютера на удаленный сервер.

scp local_file username@remote_host:/path/to/destination

Пример:

scp myfile.txt user@example.com:/home/user/

4. Копирование файлов с удаленного компьютера на локальный с помощью scp

Чтобы загрузить файлы с удаленного сервера на локальную машину, выполните следующие действия:

scp username@remote_host:/path/to/remote_file /path/to/local_destination

Пример:

scp user@example.com:/home/user/remote_file.txt .

5. Рекурсивное копирование каталогов с помощью scp

Чтобы скопировать целые каталоги (включая подкаталоги), используйте флаг -r в scp.

scp -r /path/to/local_directory username@remote_host:/path/to/remote_destination

Пример:

scp -r my_folder user@example.com:/home/user/

6. Выполнение команд на удаленном сервере

Вы можете выполнить команду на удаленном сервере, не открывая интерактивный сеанс SSH.

ssh username@remote_host ‘command_to_execute’

Пример:

ssh user@example.com ‘ls -la /home/user’

7. Использование аутентификации по ключу SSH

Чтобы не вводить пароли каждый раз, можно использовать аутентификацию с помощью ключей SSH.

  1. Сгенерируйте пару ключей SSH:
    ssh-keygen -t rsa
  2. Скопируйте открытый ключ на удаленный сервер:
    ssh-copy-id username@remote_host

После копирования ключа вы сможете войти в систему без пароля.

8. Проверка журналов соединений SSH

Чтобы просмотреть попытки входа в систему SSH и журналы соединений на сервере:

sudo cat /var/log/auth.log | grep ‘sshd’

Эта команда полезна для отслеживания попыток несанкционированного входа в систему.

9. Туннелирование SSH (переадресация портов)

SSH-туннелирование позволяет безопасно перенаправлять трафик с локального порта на удаленный сервер.

Переадресация локального порта:

ssh -L local_port:remote_host:remote_port username@remote_host

Пример: Перенаправить локальный порт 8080 на порт 3306 удаленного сервера.

ssh -L 8080:localhost:3306 user@example.com

Удаленная переадресация портов:

ssh -R remote_port:local_host:local_port username@remote_host

10. SSH на удаленном сервере с другим файлом идентификации

Если у вас есть несколько SSH-ключей, вы можете указать конкретный ключ с помощью флага -i.

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

Пример:

ssh -i ~/.ssh/id_rsa user@example.com

11. Копирование файлов с помощью rsync через SSH

rsync – это более продвинутый инструмент, чем scp, для копирования файлов и каталогов.

rsync -avz /path/to/local_directory username@remote_host:/path/to/remote_directory

Пример:

rsync -avz my_folder/ user@example.com:/home/user/

Флаг -a сохраняет права доступа к файлам, -v служит для подробного вывода, а -z включает сжатие.

12. Проверка состояния SSH-соединения

Чтобы проверить, активно ли SSH-соединение с удаленным сервером:

ssh -O check username@remote_host

Эта команда проверяет состояние соединения, не прерывая его.

13. Список активных SSH-соединений

Чтобы перечислить активные SSH-соединения на сервере, вы можете использовать:

who

Или:

w

Эти команды показывают, какие пользователи в данный момент вошли на сервер.

14. Прервать сеанс SSH

Чтобы выйти из сеанса SSH, просто введите:

exit

Или нажмите Ctrl D.

15. Настройка SOCKS-прокси с помощью SSH

SSH может выступать в роли SOCKS-прокси, позволяя вам безопасно просматривать интернет-страницы через SSH-туннель.

ssh -D local_port username@remote_host

Пример:

ssh -D 8080 user@example.com

Затем установите в настройках прокси-сервера вашего браузера значение localhost:8080, чтобы использовать SOCKS-прокси.

16. Переадресация агента SSH

Если вы хотите использовать свои локальные SSH-ключи на удаленном сервере:

  1. Запустите SSH-агент на локальной машине:
    eval $(ssh-agent)
    ssh-add ~/.ssh/id_rsa
  2. Подключитесь с помощью переадресации агента:
    ssh -A username@remote_host

Это позволит вам подключаться по SSH с удаленного сервера на другой сервер, используя локальный ключ.

17. Файл конфигурации SSH

Чтобы упростить SSH-соединения, можно создать файл конфигурации:

  1. Отредактируйте или создайте ~/.ssh/config:
    nano ~/.ssh/config
  2. Добавьте запись:
    Host myserver
    HostName example.com
    Пользователь user
    Порт 2222
    IdentityFile ~/.ssh/id_rsa
  3. Подключитесь с помощью:
    ssh myserver

18. Проверка версии SSH

Чтобы узнать, какая версия SSH установлена в вашей системе:

ssh -V

Пример вывода:

OpenSSH_8.4p1, OpenSSL 1.1.1k 25 Mar 2021

19. Установка интервала KeepAlive для предотвращения таймаута

Чтобы поддерживать SSH-соединение и предотвратить его обрыв, добавьте следующее в ~/.ssh/config:

Host *
ServerAliveInterval 60

Это отправляет сигнал keep-alive каждые 60 секунд.

20. Проверка доступного дискового пространства на удаленном сервере

Вы можете использовать df через SSH для проверки дискового пространства на удаленном сервере:

ssh username@remote_host ‘df -h’

Пример:

ssh user@example.com ‘df -h’

Эта команда показывает доступное дисковое пространство в человекочитаемом формате (-h).

Резюме

Эти 20 команд SSH охватывают широкий спектр функций, от базовых подключений и передачи файлов до таких сложных задач, как создание туннелей и использование ключей SSH. Освоив эти команды, вы сможете управлять удаленными серверами более эффективно и безопасно. Вне зависимости от того, развертываете ли вы приложения, передаете файлы или устраняете неполадки на сервере, эти команды SSH являются необходимыми инструментами в арсенале системного администратора.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills