SSH

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

Подключение к серверу

ssh [email protected]

Конфигурация клиента

SSH-клиент может работать без конфигурационного файла и получать все необходимые параметры из аргументов командной строки. Однако можно создать конфигурационный файл с именем ~/.ssh/config. Этот файл должен содержать следующую информацию:

Host server-alias
    HostName 192.168.1.1
    User root
    Port 222
    IdentityFile ~/.ssh/server_ed25519
  • Host - имя сервера. Это имя используется в команде подключения: ssh server-alias
  • HostName - необязательный адрес сервера. Если HostName не определено, то соответствующий адрес или имя хоста должны быть определены в Host
  • User - имя пользователя
  • Port - порт сервера. По умолчанию: 22
  • IdentityFile - необязательное поле, указывающее полный путь к файлу закрытого ключа

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

В целях безопасности настоятельно рекомендуется использовать не пароли, а ключи аутентификации.

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

ssh-keygen -t ed25519 -f ~/.ssh/server_ed25519
  • ed25519 - выбирается тип шифрования. Ed25519 - оптимальный выбор
  • ~/.ssh/server_ed25519 - путь к файлу с закрытым ключом. Открытый ключ будет сгенерирован в виде ~/.ssh/server_ed25519.pub

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

Открытый ключ представляет собой одну строку, имеющую следующий формат:

ssh-ed25519 AAAA...UUUU [email protected]

На сервере добавьте эту строку в файл ~/.ssh/authorized_keys файл. Этот файл может содержать один или несколько ключей. Чтобы добавить открытый ключ, выполните следующую команду:

echo "ssh-ed25519 AAAA...UUUU [email protected]" >>~/.ssh/authorized_keys

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

Для копирования файлов на сервер используйте следующую команду:

scp FILE 192.168.1.1:REMOTE
  • FILE - путь к файлу на локальном компьютере
  • 192.168.1.1 - адрес сервера
  • REMOTE - абсолютный путь к файлу на сервере

Переадресация портов

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

ssh -L 4000:192.168.88.100:554 192.168.1.1
  • 4000 - номер порта на локальном компьютере с ssh-клиентом
  • 192.168.88.100:554 - IP-адрес и номер порта на удаленном компьютере
  • -fNT - дополнительные опции для запуска SSH-клиента в фоновом режиме

Например, если удаленным адресом является IP-камера с потоковым адресом rtsp://admin:[email protected]:554/stream1SSH будет пересылать все запросы на порт 4000 на эту камеру. После запуска потока его можно открыть в VLC, используя следующий URL: rtsp://admin:[email protected]:4000/stream1.