SSH-команда

SSH-команда

Secure Shell (SSH) — это криптографический сетевой протокол, используемый для зашифрованного соединения между клиентом и сервером. Клиент SSH создаёт защищённое соединение с SSH-сервером на удалённом компьютере. Зашифрованное соединение можно использовать для выполнения команд на сервере, туннелирования X11, переадресации портов и многого другого.

Существует множество SSH-клиентов, как бесплатных, так и коммерческих, но OpenSSH — самый распространённый из них. Он доступен на всех основных платформах, включая Linux, OpenBSD, Windows и macOS.

В этой статье объясняется, как использовать клиент командной строки OpenSSH ( ssh ) для входа на удаленный компьютер и запуска команд или выполнения других операций.

Установка клиента OpenSSH

Клиентская программа OpenSSH называется ssh и может быть запущена из терминала. Пакет клиента OpenSSH также предоставляет другие утилиты SSH, такие как scp и sftp , которые устанавливаются вместе с командой ssh .

Установка клиента OpenSSH на Linux

Клиент OpenSSH предустановлен в большинстве дистрибутивов Linux по умолчанию. Если в вашей системе SSH-клиент не установлен, вы можете установить его с помощью менеджера пакетов вашего дистрибутива.

Установка OpenSSH в Ubuntu и Debian

 sudo apt update sudo apt install openssh-client

Установка OpenSSH на CentOS и Fedora

 sudo dnf install openssh-clients

Установка клиента OpenSSH в Windows 10

Большинство пользователей Windows используют Putty для подключения к удалённому компьютеру по SSH. Однако последние версии Windows 10 включают клиент и сервер OpenSSH. Оба пакета можно установить через графический интерфейс или PowerShell.

Чтобы узнать точное имя пакета OpenSSH, введите следующую команду:

 Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Команда должна вернуть что-то вроде этого:

 Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent

Узнав имя пакета, установите его, выполнив команду:

 Add-WindowsCapability -Online -Name OpenSSH . Server ~~~~ 0.0 . 1 . 0

В случае успеха вывод будет выглядеть примерно так:

 Path : Online : True RestartNeeded : False

Установка клиента OpenSSH на macOS

macOS поставляется с установленным по умолчанию клиентом OpenSSH.

Как использовать команду ssh

Для входа на удаленную машину через SSH необходимо выполнить следующие требования:

  • На удаленной машине должен быть запущен SSH-сервер.
  • Порт SSH должен быть открыт в брандмауэре удаленного компьютера.
  • Вам необходимо знать имя пользователя и пароль удалённой учётной записи. Учётная запись должна иметь соответствующие права для удалённого входа.

Основной синтаксис команды ssh следующий:

 ssh [ OPTIONS ] [ USER@ ] :HOST

Чтобы использовать команду ssh , откройте Терминал или PowerShell и введите ssh , а затем имя удаленного хоста:

 ssh ssh.linuxgazette.ru

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

 The authenticity of host 'ssh.linuxgazette.ru (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?

Каждый хост имеет уникальный отпечаток, который хранится в файле ~/.ssh/known_hosts .

Введите yes , чтобы сохранить удаленный отпечаток пальца, и вам будет предложено ввести пароль.

 Warning: Permanently added 'ssh.linuxgazette.ru' (ECDSA) to the list of known hosts. dev@ssh.linuxgazette.ru's password:

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

Если имя пользователя не указано, команда ssh использует текущее имя входа в систему.

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

 ssh username@hostname

Имя пользователя также можно указать с помощью опции -l :

 ssh -l username hostname

По умолчанию, если порт не указан, SSH-клиент попытается подключиться к удаленному серверу через порт 22. На некоторых серверах администраторы изменяют порт SSH по умолчанию , чтобы добавить дополнительный уровень безопасности серверу за счет снижения риска автоматизированных атак.

Чтобы подключиться к порту, отличному от порта по умолчанию, используйте опцию -p для указания порта:

 ssh -p 5522 username@hostname

Если у вас возникли проблемы с аутентификацией или подключением, используйте опцию -v , чтобы указать ssh выводить отладочные сообщения:

 ssh -v username@hostname

Чтобы увеличить уровень детализации, используйте -vv или -vvv .

Команда ssh принимает ряд опций.

Полный список всех опций можно найти на странице руководства ssh , введя в терминале man ssh .

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

Если вы ежедневно подключаетесь к нескольким удаленным системам через SSH, вы обнаружите, что запомнить все удаленные IP-адреса, различные имена пользователей, нестандартные порты и различные параметры командной строки сложно, если не невозможно.

Клиент OpenSSH считывает параметры, заданные в файле конфигурации пользователя ( ~/.ssh/config ). В этом файле можно хранить различные параметры SSH для каждой удалённой машины, к которой вы подключаетесь.

Пример конфигурации SSH показан ниже:

 Host dev HostName dev.linuxgazette.ru User mike Port 4422

При запуске SSH-клиента командой ssh dev команда прочитает файл ~/.ssh/config и использует данные подключения, указанные для хоста dev. В этом примере ssh dev эквивалентен следующему:

 ssh -p 4422 mike@dev.linuxgazette.ru

Более подробную информацию можно найти в статье о файле конфигурации SSH .

Аутентификация открытого ключа

Протокол SSH поддерживает различные механизмы аутентификации.

Механизм аутентификации на основе открытого ключа позволяет вам войти на удаленный сервер без необходимости ввода пароля .

Этот метод основан на генерации пары криптографических ключей, используемых для аутентификации. Закрытый ключ хранится на клиентском устройстве, а открытый ключ передаётся на каждый удалённый сервер, к которому вы хотите подключиться. Удалённый сервер должен быть настроен на приём аутентификации по ключу.

Если на вашем локальном компьютере еще нет пары ключей SSH, вы можете сгенерировать ее, введя:

 ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Вам будет предложено ввести безопасную парольную фразу. Использовать пароль или нет — решать вам.

Получив пару ключей, скопируйте открытый ключ на удаленный сервер:

 ssh-copy-id username@hostname

Введите пароль удаленного пользователя, и открытый ключ будет добавлен к файлу authorized_keys удаленного пользователя.

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

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

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

SSH-туннелирование или переадресация портов SSH — это метод создания зашифрованного SSH-соединения между клиентом и сервером, через которое могут ретранслироваться порты служб.

Переадресация SSH полезна для передачи сетевых данных сервисов, использующих незашифрованный протокол, например VNC или FTP, доступа к контенту с географическими ограничениями или обхода промежуточных брандмауэров. По сути, вы можете переадресовать любой TCP-порт и туннелировать трафик через защищённое SSH-соединение.

Существует три типа переадресации портов SSH:

Локальная переадресация портов

Локальная переадресация портов позволяет перенаправлять соединение с клиентского хоста на хост SSH-сервера, а затем на порт хоста назначения.

Чтобы создать локальную переадресацию портов, передайте ssh клиенту опцию -L :

 ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Опция -f указывает команде ssh работать в фоновом режиме, а -N не выполнять удаленную команду.

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

Удалённая переадресация портов — это противоположность локальной переадресации портов. Она перенаправляет порт с хоста-сервера на хост-клиент, а затем на порт хоста-получателя.

Опция -R указывает ssh создать удаленную переадресацию портов:

 ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Динамическая переадресация портов

Динамическая переадресация портов создает прокси-сервер SOCKS , который обеспечивает связь через ряд портов.

Чтобы создать динамическую переадресацию портов (SOCKS), передайте ssh-клиенту опцию -D :

 ssh -D [LOCAL_IP:]LOCAL_PORT -N -f username@hostname

Более подробную информацию и пошаговые инструкции можно найти в статье «Как настроить SSH-туннелирование (переадресацию портов)» .

Заключение

Чтобы подключиться к удаленному серверу через SSH, используйте команду ssh , за которой укажите имя удаленного пользователя и имя хоста ( ssh username@hostname ).

Умение использовать команду ssh необходимо для управления удаленными серверами.

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

SSH- терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *