SSH – считается одним из самых популярных из доступных инструментов, который используется для отдаленного управления серверами и компьютерами. IT-специалисты ежедневно используют Secure Shell для различных задач связанных с автоматизацией, администрированием, и другими настройками.

Роль SSH в современной архитектуре и инфраструктуре
SSH используется в самых разнообразных сферах, таких как:
- Разработка ПО. С помощью многих редакторов кода, которые поддерживаю SSH можно удаленно запускать приложения, подключаться к серверу, и работать отдаленно на локальной машине.
- Доступ к облачным сервисам, таких как Azure, AWS, и другим предоставляется через SSH.
- Можно управлять серверной инфраструктурой запуская обновления, добавляя новые сервисы, или исправляя ошибки.
– Автоматизация задач с помощью Python или Bash для задач на удаленных машинах. - SSH используется для безопасного взаимодействия между устройствами.
Как функционирует SSH: базовые механизмы и концепции
SSH функционирует на базе асимметричного шифрования, где для кодировки данных используются 2 ключи:
- Закрытый ключ, который сохраняется у юзера и используется для расшифровки.
- Открытый ключ используется для шифрования.
Такой подход к шифрованию данных очень надежный и при попытке или даже перехвате информации, данные невозможно будет расшифровать.
Установка и первоначальная настройка SSH-клиента и сервера
Давайте рассмотрим основной алгоритм установки соединения:
- Отправляется запрос на соединение с сервером.
- Открытый ключ передается клиенту.
- Клиент шифрует информацию с помощью открытого ключа и отправляет его обратно.
- Сервер проверяет подлинность юзера и завершает соединение.
Часто спрашивают: Основы SSH: как использовать и список полезных команд
Настройка SSH в Linux и macOS
SSH в системах на macOS и Linux встроены по умолчанию. Для того чтобы проверить наличие клиента используйте:
ssh -V
Если клиент установлен, вы увидите версию клиента. Для того чтобы подключится к серверу нужно использовать:
ssh user@host
Далее нужно сгенерировать пару ключей для безопасности с помощью:
ssh-keygen -t rsa -b 4096
Следующий важный момент – это копирование открытого ключа с помощью:
ssh-copy-id user@host
Таким образом при подключении система будет использовать закрытый ключ.
Настройка SSH в Windows
В системах на Windows 10 и выше уже присутствует OpenSSH, потому для подключения нужно открыть PowerShell и использовать:
ssh user@host
Для ранних версий Windows можно использовать PuTTy.
Для настройки доступа нужно установить SSH-сервер с помощью:
sudo apt install openssh-server
Далее нужно настроить конфигурацию, сначала откройте файл /etc/ssh/sshd_config и внесите следующие изменения:
- Используйте нестандартный порт, к примеру:
Port 2222
- Cледующим шагом будет запрет root-юзера и отключение аутентификации с помощью пароля.
PermitRootLogin no
PasswordAuthentication no
- Далее нужно перезапустить с помощью:
sudo systemctl restart ssh
Управление файлами и данными по SSH
Кроме других нужных функций, SSH в первую очередь используется для передачи файлов. Наиболее часто использованными инструментами для этого процесса есть – SFTP и SCP. Давайте приступим к разбору базовых инструментов и деталей касательно SSH-туннелирования.
SCP: базовый инструмент для быстрого копирования файлов
SCP – это основной инструмент, который необходим для безопасной передачи информации между хостами. Таким способом, возможно безопасно копировать каталоги или отдельные файлы между компьютерами с помощью зашифрованного соединения. Этот протокол осуществляет передачу данных используя командный интерфейс.
Для загрузки файла на сервер можно использовать следующую команду:
scp file.txt user@host:/path
Для скачивания файла используйте:
scp user@host:/path/to/remote/file.txt /local/destination
Это интересно: Руководство по подключению к серверу через SFTP в WinSCP
Дополнительные материалы по работе с протоколами передачи
Также есть SFTP протокол, которые предоставляет более широкие возможности с помощью, которых можно работать с удаленными файловыми системами. Поддерживаются такие операции как создание директории, удаление файлов и других задач, а также просмотр содержимого каталогов.
Для подключения к серверу используйте:
sftp user@host
Работа с несколькими ключами и сегментация доступа
Кроме безопасного подключения, SSH также предоставляет необходимые инструменты для дополнительного удобства пользователей.
К примеру, есть ваш проект связан с несколькими серверами, возможно использовать разные пары ключей. Для этого нужно настроить config файл и добавить необходимую информации следующим образом:
# Server 1
Host server1
HostName example.com
User user1
IdentityFile ~/.ssh/id_rsa_server1
# Server 2
Host server2
HostName example2.com
User user2
IdentityFile ~/.ssh/id_rsa_server2
# Server 3
Host server3
HostName example3.com
User user3
IdentityFile ~/.ssh/id_rsa_server3
После внесенных изменений процесс подключения выглядит следующим образом:
ssh server3
Использование SSH-агента для безопасного хранения ключей и автоматизации
Для того, чтобы не нужно было вводить пароль при каждом запуске, можно использовать SSH-агента для хранения ключей. Для запуска агента используйте:
eval “$(ssh-agent -s)”
Для добавления ключа используйте:
ssh-add ~/.ssh/id_rsa
Итоговые рекомендации по безопасной и эффективной работе с SSH
SSH – это отличный вариант для управления серверами и удаленного доступа, с помощью которого также можно безопасно передать файлы с SFTP и SCP. Данные протоколы гарантируют удобство в работе с файлами.