Подключение к удаленному серверу через SSH в Windows:
Откройте терминал:
На локальном компьютере с Windows откройте приложение терминала, которое вы хотите использовать. Терминал позволяет получить доступ к среде оболочки вашей операционной системы и запускать программы через командную строку, например, команду SSH.
Командная строка (или PowerShell) — Windows 10 или 11: Это самый простой способ для большинства людей, использующих Windows 10 или более позднюю версию.
- Подсистема Windows для Linux - Windows 10 или 11: Это требует еще нескольких шагов по установке и настройке, но может быть лучшим вариантом для тех, кто предпочитает работать в командной строке Linux.
- PuTTY — Windows 8, 7, Vista и XP: Для более ранних версий Windows необходимо использовать PuTTY или любой другой сторонний эмулятор терминала.
Командная строка (или PowerShell) — Windows 10 или 11
В Windows 10 и 11 есть два терминала: командная строка (также называемая CMD) и PowerShell. Чтобы подключиться к серверу с помощью SSH в Windows 10 в рамках одного из этих инструментов, необходимо установить клиент OpenSSH.
OpenSSH — это SSH-клиент Windows, доступный в более новых версиях Windows 10 (обновление за апрель 2018 г. и более поздние версии), хотя его может потребоваться включить вручную.
Установка клиента OpenSSH
-
Откройте поиск Windows, выбрав область поиска (или кнопку поиска) на панели задач или нажав Windows + S на клавиатуре.
-
Начните вводить «Управление дополнительными компонентами» и выберите «Управление дополнительными компонентами» (параметры системы) в результатах поиска.
- Откроется страница Дополнительные компоненты приложения Параметры. В списке «Установленные компоненты» найдите функцию «Клиент OpenSSH».
- Если компонент Клиент OpenSSH не установлен, нажмите кнопку Добавить компонент в верхней части страницы. Появится выпадающее меню. Выберите Клиент OpenSSH и нажмите кнопку «Установить», чтобы установить ssh в Windows.
Откройте командную строку или PowerShell
Чтобы запустить команду SSH, вам сначала нужно открыть предпочитаемую утилиту командной строки. Откройте поиск Windows с помощью горячей клавиши Windows + S, введите «Командная строка» или «PowerShell» в область поиска и выберите соответствующее приложение из результатов.
Подсистема Windows для Linux (WSL) — Windows 10 или 11
Вместо того, чтобы использовать командную строку или среду PowerShell (которая значительно отличается от сред командной строки macOS и Linux), вы можете запускать Linux непосредственно в Windows через WSL (подсистема Windows для Linux). Это может быть предпочтительнее, если вам удобнее работать в среде оболочки Linux.
-
Установите WSL, следуя инструкциям в руководстве Майкрософт по установке WSL. Если WSL1 уже установлен, рекомендуется выполнить обновление до WSL2.
-
Установите предпочитаемый дистрибутив Linux, например Ubuntu, непосредственно из Microsoft Store. Полный список доступных дистрибутивов можно найти в разделе Шаг 6 - Установка дистрибутива Linux по выбору из ранее упомянутого руководства.
После того, как все настроено, вы можете использовать среду WSL, открыв установленный дистрибутив Linux через меню «Пуск» или поиск Windows. По умолчанию WSL использует довольно простой эмулятор терминала. Вы также можете использовать более настраиваемый терминал, например Windows Terminal или Hyper.
PuTTY — Windows 8, 7, Vista и XP
В Windows 8 и более ранних версиях нет собственного SSH-клиента. Вместо этого вам нужно будет использовать стороннее приложение, такое как PuTTY, Cygwin, расширение Secure Shell для Google Chrome или любой другой эмулятор терминала с поддержкой SSH.
Подключение к удаленному серверу по SSH из Windows
После открытия предпочитаемого SSH-клиента Windows (командная строка, PowerShell или WSL) можно выполнить команду для подключения к серверу. ssh
- В терминале введите следующую команду, заменив [имя пользователя] на имя пользователя удаленного пользователя, а [ip-адрес] на IP-адрес или доменное имя удаленного сервера.
ssh [username]@[ip-address]
SSH-клиент пытается подключиться к удаленному серверу через порт 22 (порт SSH по умолчанию).
Если SSH-порт сервера отличается от 22, его необходимо указать в команде SSH. Для этого используйте опцию, как показано в команде ниже. Замените [port-number] номером порта, который использует удаленный SSH-сервер. -p
ssh [username]@[ip-address] -p [port-number]
-
При первом подключении к серверу SSH-клиент в Windows 10 предлагает проверить отпечаток ключа узла.
-
Примите приглашение, введя
y
илиyes
, что приведет к одноразовому предупреждению.
После успешного подключения ваш терминал должен использовать среду удаленной оболочки для сервера. Теперь в командной строке должны отображаться имя пользователя и имя хоста, настроенные для сервера. Теперь вы можете выполнять любые команды, доступные на этом сервере. Сюда входят многие основные команды Linux, такие как ls
, cd
, rm
, и те, которые описаны в [руководстве по использованию терминала]. Знакомство с этими командами поможет вам перемещаться по серверу.
Завершение сеанса SSH
После того, как вы закончите, выйдите из сеанса, введя exit
.
На этом этапе командная строка оболочки возвращается к командной строке для локальной рабочей станции, и приложение терминала можно закрыть, если оно больше не нужно.
Отправка команд по SSH
Вместо того, чтобы использовать SSH для открытия консоли удаленного сервера, вы можете выполнять команды на своем сервере, не выходя из локальной среды оболочки. Это позволяет быстро выполнять команды как локально, так и удаленно в одном окне терминала.
Отправка одной команды
Чтобы выполнить одну команду на удаленном сервере, используйте следующую команду. Замените [имя пользователя] именем пользователя удаленного пользователя, [ip-адрес] — IP-адресом или доменным именем удаленного сервера, а [command] — командой, которую вы хотите выполнить.
ssh [username]@[ip-address] [command]
Например, при запуске ssh me@192.0.2.0 ls
перечислены все файлы в домашнем каталоге пользователя с именем me
. Это может быть полезно для определения времени безотказной работы сервера (ssh me@192.0.2.0 uptime
) или, возможно, для определения его дистрибутива и версии Linux (ssh me@192.0.2.0 lsb_release -a
).
Отправка нескольких команд
Чтобы выполнить несколько команд на удаленном сервере (одну за другой), используйте следующую команду. Замените [command-1], [command-2] и [command-3 ] командами, которые вы хотите запустить.
ssh [username]@[ip-address] "[command-1]; [command-2]; [command-3]"
Команды должны быть разделены точкой с запятой (;
), а все команды вместе должны быть заключены в двойные кавычки ("
). Например, если вы хотите создать файл с именем bar.txt в каталоге foo в домашнем каталоге пользователя me, выполните: ssh me@192.0.2.0 "mkdir foo; cd foo; touch bar.txt"
.
Использование sudo
Рекомендуется отключить root-доступ через SSH и входить на удаленный сервер только через ограниченную учетную запись пользователя.
Однако для некоторых команд требуются повышенные привилегии, которые обычно можно выполнить, добавив к команде sudo
. Если вы попытаетесь сделать это при выполнении команд непосредственно через команду SSH, вы можете получить сообщение об ошибке, например «нет tty» (no tty present) или нет «стабильного интерфейса CLI» (stable CLI interface). Чтобы выполнить команду sudo
в этих случаях, используйте параметр -t
, который принудительно распределяет psuedo-терминал. Например, чтобы обновить пакеты в системе на основе Debian, выполните команду ssh me@192.0.2.0 -t "sudo apt update"
.