Android

Команда Ssh

Основы SSH

Основы SSH

Оглавление:

Anonim

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:HOST

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

ssh ssh.linuxize.com

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

The authenticity of host 'ssh.linuxize.com (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.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:

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

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

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

ssh username@hostname

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

ssh -l username hostname

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

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

ssh -p 5522 username@hostname

ssh -v username@hostname

Чтобы повысить уровень многословия, используйте -vv или -vvv .

Команда ssh принимает несколько опций.

Для получения полного списка всех опций прочитайте man-страницу ssh , набрав в своем терминале man ssh .

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

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

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

Host dev HostName dev.linuxize.com User mike Port 4422

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

ssh -p 4422 [email protected]

Для получения дополнительной информации проверьте статью о файле конфигурации SSH.

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

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

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

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

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Вам будет предложено ввести безопасную фразу-пароль. Хотите ли вы использовать фразу-пароль, решать только вам.

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

ssh-copy-id username@hostname

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

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

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

Перенаправление порта

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

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

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

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

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

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

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

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

Переадресация удаленных портов

Переадресация удаленных портов является противоположностью переадресации локальных портов. Он перенаправляет порт с хоста сервера на хост клиента, а затем на порт хоста назначения.

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

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

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

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

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

ssh -D LOCAL_PORT -N -f username@hostname

Для получения более подробной информации и пошаговых инструкций ознакомьтесь со статьей «Как настроить SSH-туннелирование (переадресация портов)».

Вывод

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

Знание того, как использовать команду ssh очень важно для управления удаленным сервером.

SSH терминал