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

12 set 2022 4 min di lettura
Как использовать команду SSH и установить OpenSSH
Indice dei contenuti

Введение

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.noviello.it

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

The authenticity of host 'ssh.noviello.it (192.111.122.333)' can't be established.
 ECDSA key fingerprint is SHA256:PvzTdh83hdjaie8dhqEzz38fhF7lgA/9/2bLSiO3QQQBFG.
 Are you sure you want to continue connecting (yes/no)?

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

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

Warning: Permanently added 'ssh.noviello.it' (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

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

ssh -v username@hostname

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

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

Для получения полного списка всех параметров прочитайте справочную страницу ssh, n в терминале:

man ssh

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

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

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

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

Host dev
 HostName dev.noviello.it
 User alice
 Port 4422

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

ssh -p 4422 [email protected]

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

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

Протокол 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_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Параметр -f указывает команде ssh выполняться в фоновом режиме, а флаг -N запрещает выполнение удаленной команды.

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

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

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

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

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

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

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

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

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

Вывод

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

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.