Как включить и использовать SSH-команды Windows 10

Zerox Обновлено: 03.08.2020 Заказные, Разное 13 комментариев 3,832 Просмотры

Как установить клиент SSH для Windows 10

Клиент SSH входит в состав Windows 10, но это «дополнительная функция», которая по умолчанию не установлена. Чтобы установить его, откройте «Параметры» > «Приложения» и нажмите «Управление дополнительными компонентами» в разделе «Приложения и возможности».

Нажмите «Добавить компонент» в верхней части списка установленных функций. Если у Вас уже установлен клиент SSH, он появится в списке.

Прокрутите страницу вниз, нажмите кнопку «OpenSSH Client (Beta)» и нажмите «Установить».

Windows 10 также предлагает сервер OpenSSH, который Вы можете установить, если хотите запустить SSH-сервер на своем ПК. Вы должны установить это только в том случае, если Вы действительно хотите запустить сервер на своем ПК, а не просто подключиться к серверу, работающему в другой системе.

Как использовать SSH-клиент в Windows 10

Теперь Вы можете использовать SSH-клиент, запустив команду ssh. Это работает либо в окне PowerShell, либо в окне командной строки, поэтому используйте то, что Вам нравится.

Чтобы запустить Windows PowerShell откройте поиск и введите «Windows PowerShell» и нажмите на результат поиска.

Чтобы просмотреть синтаксис команды ssh, просто запустите ее:

    ssh

Эта команда работает так же, как подключение к SSH-серверу с помощью команды ssh в других операционных системах, таких как macOS или Linux. Его синтаксис или параметры командной строки одинаковы.

Например, чтобы подключиться к SSH-серверу на с именем пользователя «user», Вы должны запустить:

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

Для чего нужен Team Shell

С помощью Team Shell вы сможете решить следующие задачи:

  1. Управление доступом по SSH. На один из серверов в инфраструктуре, к которой требуется подключение по ssh, ставится софт, который в терминологии team shell называется node. Нода связывается с сервером управления. На ноде настраивается, к каким серверам можно будет подключаться по ssh. Далее с помощью нативного клиента, который есть под все популярные операционные системы (Windows, Linux, MacOS) настраивается доступ к целевому серверу конкретному пользователю. Пользователь, которому нужно подключиться по ssh, использует клиент, авторизовывается в системе и получает соответствующие права доступа к целевому серверу. Далее он подключается по ssh через этот же клиент. Ему не нужно давать ни пароль, ни сертификат. Он подключается строго через программу-клиент. Когда нужно закрыть доступ, у пользователя просто отключаются права на подключение к конкретному серверу. В качестве клиента выступает как приложение с GUI, так и полностью консольное, которое представляет из себя готовый пакет или просто бинарник.
  2. Логирование команд и запись консоли. При подключении по ssh через клиент, записываются как все команды пользователя, так и экран консоли. Причем все эти данные хранятся централизованно на сервере и сам пользователь не может их удалить, если у него нет соответствующих прав. К каждой команде привязывается метка на записи, так что можно в любой момент посмотреть вывод экрана при вводе той или иной команды. Это очень крутая и функциональная штука. Работает просто и удобно. Дальше я покажу это на примере.
  3. Совместный доступ к консоли. Можно одновременно подключиться в один сеанс и работать с консолью совместно. При этом будет доступен чат. Получается некий аналог TeamViewer, только для консоли. Так же вместе можно смотреть записи сеансов, разбирать их. Думаю, такая штука может быть полезна для онлайн обучения, когда лектор и ученик смогут совместно разбирать урок. Либо преподаватель сможет проверять домашние задания.
  4. Менеджер соединений. Как я уже сказал выше, подключение к серверам происходит через нативное приложение, которое является в том числе менеджером подключений. При этом все настройки хранятся на сервере. Вам достаточно где угодно установить приложение, залогиниться и получить доступ ко всем своим настроенным соединениям. Доступ защищен с помощью двухфакторной аутентификации (2FA).
  5. Ограничение на запуск команд по ssh. Вы можете не открывать полный доступ к подключению по ssh. С помощью Team Shell можно разрешить запускать только какие-то определенные команды. К примеру, кому-то из саппорта вы можете разрешать запускать только одно приложение. Например, htop, если пользователь жалуется на то, что у него тормозит вируталка. Саппорт подключается к ней, запускает htop, смотрит, кто съедает все процессорное время и отвечает клиенту, что у него apachе запущен в 50-ти экземплярах. Либо какому-нибудь админу по базам данных можно разрешить запускать только консоль pgsql или mysql.
  6. Использование в качестве менеджера SSH соединений. Для неискушенного пользователя TeamShell может заменить менеджер ssh подключений. Да, у него не так много настроек и возможностей именно как менеджера, но зато присутствуют явные плюсы, которые следуют из принципа его работы. Можно закрыть ноутбук, уйти на обед и потом начать с того же места без потери сеанса, так как при разрыве интернет соединения, сам ssh сеанс с сервером не разрывается. В дополнение к этому вы тут же в приложении видите все свои прошлые команды, что может облегчить работу. Так же вы можете при подключении сразу запускать нужное вам приложение, например, консоль pgsql. Об этом я подробно расскажу далее. Еще один явный плюск к TeamShell, как менеджеру ssh — откуда бы вы не запустили терминал, после аутентификации, вы получите все свои настроенне ssh подключения.

Редактирование удалённых файлов в Vim

Вовсе необязательно подключаться к удалённой оболочке и редактировать файл непосредственно на сервере. Некоторым нравится делать это локально. Следующая команда запустить Vim, безопасно скопирует удалённый файл при помощи scp и после выхода из редактора обновит изменения на сервере, если таковые будут:

$ vim scp://[email protected]//etc/samba/

Кстати, помимо всего прочего, если соединение с сервером вдруг оборвётся, вас это не будет никоим образом волновать. Всё происходит локально, так что обрыв соединения с удалённым сервером не грозит вам потерять результаты работы.

Установка и настройка на стороне сервера

Перед установлением соединения установите серверное программное обеспечение для размещения соединения SSH. Это требует присутствия кого-то для установки или включения SSH. Возможно, вы уже присутствовали для этого, в противном случае коллега или специалист по обслуживанию на конце сервера настроит SSH.

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

Если SSH не включен на компьютере или на удаленном сервере, установите его с

sudo apt install openssh-server

Проверьте, что это сработало

sudo systemctl status ssh

Команда должна нарушать «активный» ответ.

В некоторых случаях брандмауэр Ubuntu UFW может блокировать SSH. Чтобы этого не произошло, используйте

sudo ufw allow ssh

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

sudo systemctl enable ssh

Другие параметры ( stop , start и disable ) доступны для настройки службы SSH.

SSH-клиенты для Windows — программы и online — аддоны

PuTTY — клиент для подключения к SSH, Telnet, SCP, SFTP.

PuTTY, пожалуй, один из самых популярных SSH-клиентов для Windows. Популярен он за свою функциональность, быстроту работы, простоту использования. И он бесплатный! Скачайте этот клиент и установите его.

SSH-клиенты для Windows — программы и online — аддоны

В стартовом окне приветствия сразу можно ввести все параметры подключения, запустить соединение и сразу же приступить к работе. Можно сохранить это подключение на будущее, чтобы каждый раз не вводить все данные заново. Это удобно.

Официальный сайт программы —

WinSCP

WinSCP — еще одна довольно популярная программа-клиент. С помощью нее можно установить зашифрованное соединение к FTP-серверу удаленной машины путем туннелирования трафика через протокол SSH.

SSH-клиенты для Windows — программы и online — аддоны

Работает быстро. Интерфейс похож на PuTTY. Ничего сверхъестественного, поэтому разобраться с подключением будет не сложно. Все то же самое: хост, порт, имя пользователя и пароль — все, что требуется для подключения и дальнейшего управления файловой структурой сервера.

Официальный сайт программы — :ru.

Xshell

Xshell — бесплатный для некоммерческого использования клиент.

SSH-клиенты для Windows — программы и online — аддоны

Преимущества программы: поддержка локальных команд, управление файлами и туннелирование. Имеет простой командный интерфейс. Помимо SSH-протокола поддерживает и другие: RLOGIN, SFTP, TELNET, SERIAL. Для профессиональных пользователей есть куча дополнительных настроек: динамическое перенаправление портов, поддержка сценариев, трассировка, функции настройки безопасности.

На официальном сайте можно скачать эту программу, указав свой email.

Надежный виртуальный хостинг с круглосуточной техподдержкой — скидки до 30%!

Онлайн расширение FireSSH для Firefox

SSH-клиенты для Windows — программы и online — аддоны

Плагин для одного из популярных браузеров Mozilla Firefox.

Чтобы запустить клиент зайдите в «Меню», затем «Разработка», пункт «FireSSH». Ваш клиент запущен. Вводите ваши данные для подключения во вкладке «Main» и приступайте к работе. Во вкладке «Advanced» можно указать дополнительные параметры SSH-туннелирования. Работает эта штука в режиме онлайн на всех ОС, на которые можно поставить этот браузер.

Установите это расширение из официального репозитория -US/firefox/addon/firessh/ и перезапустите свой браузер.

Secure Shell — хороший плагин для Google Chrome

SSH-клиенты для Windows — программы и online — аддоны

Для браузера Google Chrome есть свой плагин ssh-клиент. Называется он Secure Shell.

Установите это расширение в свой браузер. После установки щелкните на пиктограмку, клиент откроется в новой вкладке. В этом окне вы настраиваете параметры подключения и устанавливаете соединение с удаленным сервером. Этот клиент также будет работать в любой ОС, для которой можно установить данный браузер.

Ссылка для установки — ….

VPS SSD хостинг — выбор профессионалов. Только сертифицированное серверное оборудование!

SSH-клиенты для Windows — программы и online — аддоны

OpenSSH для Cygwin Terminal

Для Windows существует пакет UNIX-подобных утилит. Cygwin — один из таких пакетов. А OpenSSH может быть установлена вместе с ним. Попробуйте эту утилиту, возможно она вам понравится!

В чем ее преимущество? Вы можете использовать команды с синтаксисом для UNIX-платформ в Windows среде. Это удобно для пользователя, который не хочет изучать дополнительные команды для Windows. Установите пакет Cygwin. Во время установки вы можете выбрать установку только отдельно OpenSSH. После установки запускайте утилиту Cygwin Terminal и наслаждайтесь простым консольным терминалом!

Скачать установщик можно на официальном сайте —

Клиент SSH Windows

Одной из самых популярных программ для работы c Linux серверами по SSH в Windows является программа Putty. Скачать данный SSH клиент Windows можно по данному адресу —

Клиент SSH Windows

Подключение по SSH по паролю в Windows

Клиент SSH Windows

Подключение в Putty по SSH очень простое! Вводим IP адрес, если меняли порт, то указываем другой порт и нажимаем Open:и после подключения логин и пароль!

Клиент SSH Windows

Подключение по SSH по ключу в Windows

Клиент SSH Windows

Если вам не хочется вводить каждый раз пароль, а использовать ключ ssh в Putty, то, как и в Linux, сначала необходимо создать ключ, а после перенести его на сервер.

Клиент SSH Windows

Создаем ключ

Клиент SSH Windows
  1. Скачайте еще одну программу PuttyGen и запустите ее
  2. Нажмите кнопку «Generate» и вводите мышку по сторонам, для того чтобы создался ключ
  3. После создания ключа нажимаем «Save Privat Key» и указываем место сохранения, сохраняем с расширением .ppk
  4. Копируем весь ключ в буфер обмена с самой первой строки ssh-rsa:
Клиент SSH Windows

Программу пока не закрываем и запускаем Putty для подключения

Перенос ключа

  1. Сохраняем наш Linux сервер в сессиях следующим образом:
    • Указываем ИмяПользователя@IPадрес
    • чуть ниже название подключения
  2. Подключаемся к серверу
  3. Переходим в директорию ./ssh:

    cd ~/.ssh/

  4. Далее с помощью редактора nano откройте документ authorized_keys для редактирования

    nano authorized_keys

    и добавьте ранее сгенерированный ключ в данный файл и сохраните данные

  5. Закройте Putty SSH
  6. Откройте Putty, нажмите кнопку «Load»
  7. Далее в настройках SSH -> Auth укажите путь до файла
  8. Нажмите Open, после чего запустится сеанс на сервере без использования ключа!

Как подключаться по SSH?

Для подключения к удаленной машине по SSH нужен клиент — специальная программа. В *nix-подобных системах (Linux, macOS) клиент обычно установлен в системе по умолчанию, и достаточно открыть терминал. В Windows нужно скачать сторонний клиент, например, Putty.

Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт. Вот как выглядит команда при использовании консольного клиента (в терминале):

ssh [email protected]_host -p port

Например, для подключения к серверу в аккаунт ivan нужно ввести:

ssh [email protected]

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

В графическом клиенте вроде Putty нужно ввести ту же информацию в соответствующие поля:

Fingerprint

При первом подключении появится сообщение:

The authenticity of host ‘ ()’ can’t be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

Введите yes в первый раз.

Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Если кто-то переустановит SSH-сервер, или всю операционную систему, или вообще заменит удаленный компьютер, сохранив его адрес, то при следующем соединении вы узнаете об этом, потому что изменится fingerprint.

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

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

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

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

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

Перенаправление локального порта

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

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

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f [email protected]

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

Перенаправление удаленного порта

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

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

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f [email protected]

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

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

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

ssh -D [LOCAL_IP:]LOCAL_PORT -N -f [email protected]

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

crontab

Очень часто перед веб-разработчиком стоит задача поставить на регулярное выполнение разные скрипты на сервере. Например, ночью, когда нагрузка на сервер минимальная, нужно произвести какую-то тяжелую операция на сервере или нужно в определенное время сделать рассылку клиентам или сделать импорт товаров из внешнего источника или каждые 2 минуты проверять какое-то событие, да примеров миллион. Все это можно сделать с помощью утилиты «cron» и настраивается она командой crontab.

Проверить какие команды в настоящее время стоят «на кроне», можно выполнив команду:

crontab -l

А добавить свою новую команду на выполнение в определенное время можно выполнив команду:

crontab -e

Последняя команда вызовет редактор, писать текст в котором можно нажав клавишу «i» (если ваш редактор по умолчанию — vi). У вас появится курсор, который можно двигать стрелками и писать в нем новую или редактировать написанную инструкцию для крона. Синтаксис у такой инструкции довольно простой: перед командой, которую нужно выполнить на сервере, нужно указать время выполнения. Время задается пятью параметрами: минуты, часы, дни месяца, месяцы, годы. Примеры:

*/2 * * * * command — выполнять команду «command» каждые 2 минуты

0 12 * * * command — каждый день в 12 часов дня

0 0 * * * command — каждый день в 12 часов ночи

0 0 1 1 * command — каждый новый год 🙂

15 * * * * command — каждый час в 15 минут этого часа

После вводу нужных инструкций нужно нажать Esc и написать такое «:wq», это сохранит записи и закроет редактор вернув вас обратно в командную строку.

Читайте также:  Как отключить платные подписки МТС: основные пути решения