Как отключить ssh windows

Использование встроенного SSH клиента в Windows 10

В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим устройствам по защищенному протоколу, вместо Putty, MTPuTTY или других сторонних SSH клиентов. Встроенный SSH клиент Windows основан на порте OpenSSH и предустановлен в ОС, начиная с Windows 10 1809.

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

Клиент OpenSSH входит в состав Features on Demand Windows 10 (как и RSAT). Клиент SSH установлен по умолчанию в Windows Server 2019 и Windows 10 1809 и более новых билдах.

Проверьте, что SSH клиент установлен:

Get-WindowsCapability -Online | ? Name -like ‘OpenSSH.Client*’

В нашем примере клиент OpenSSH установлен (статус: State: Installed).

Если SSH клиент отсутствует (State: Not Present), его можно установить:

  • С помощью команды PowerShell: Add-WindowsCapability -Online -Name OpenSSH.Client*
  • С помощью DISM: dism /Online /Add-Capability /CapabilityName:OpenSSH.Client

0.0.1.0

  • Через Параметры -> Приложения -> Дополнительные возможности -> Добавить компонент. Найдите в списке Клиент OpenSSH и нажмите кнопку Установить.
  • ]Бинарные файлы OpenSSH находятся в каталоге c:\windows\system32\OpenSSH\.

    • ssh.exe – это исполняемый файл клиента SSH;
    • scp.exe – утилита для копирования файлов в SSH сессии;
    • ssh-keygen.exe – утилита для генерации ключей аутентификации;
    • ssh-agent.exe – используется для управления ключами;
    • ssh-add.exe – добавление ключа в базу ssh-агента.

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

    Чтобы запустить SSH клиент, запустите командную строку PowerShell или cmd.exe . Выведите доступные параметры и синтаксис утилиты ssh.exe, набрав команду:

    ssh
    usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
    [-D [bind_address:]port] [-E log_file] [-e escape_char]
    [-F configfile] [-I pkcs11] [-i identity_file]
    [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
    [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
    [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
    destination [command]

    Для подключения к удаленному серверу по SSH используется команда:

    Если SSH сервер запущен на нестандартном порту, отличном от TCP/22, можно указать номер порта:

    ssh username@host -p port

    Например, чтобы подключиться к Linux хосту с IP адресом 192.168.1.202 под root, выполните:

    При первом подключении появится запрос на добавление ключа хоста в доверенные, наберите yes -> Enter (при этом отпечаток ключа хоста добавляется в файл C:\Users\username\.ssh\known_hosts).

    Затем появится запрос пароля указанной учетной записи, укажите пароль root, после чего должна открытся консоль удаленного Linux сервера (в моем примере на удаленном сервере установлен CentOS 8).

    Если вы используете SSH аутентификацию по RSA ключам (см. пример с настройкой SSH аутентификации по ключам в Windows), вы можете указать путь к файлу с закрытым ключом в клиенте SSH так:

    ssh root@192.168.1.92 -i «C:\Users\username\.ssh\id_rsa»

    Также вы можете добавить ваш закрытый ключ в SSH-Agent. Сначала нужно включить службу ssh-agent и настроить ее автозапуск:

    set-service ssh-agent StartupType ‘Automatic’
    Start-Service ssh-agent

    Добавим ваш закрытый ключ в базу ssh-agent:

    Теперь вы можете подключиться к серверу по SSH без указания пути к RSA ключу, он будет использоваться автоматически. Пароль для подключения не запрашивается (если только вы не защитили ваш RSA ключ отдельным паролем):

    Еще несколько полезных аргументов SSH:

    • -C – сжимать трафик между клиентом и сервером (полезно на медленных и нестабильных подключениях);
    • -v – вывод подробной информации обо всех действия клиента ssh;
    • -R / -L – можно использовать для проброса портов через SSH туннель.

    SCP: копирование файлов из/в Windows через SSH

    С помощью утилиты scp.exe, которая входит в состав пакета клиента SSH, вы можете скопировать файл с вашего компьютера на SSH сервер:

    scp.exe «E:\ISO\CentOS-8.1.1911-x86_64.iso» root@192.168.1.202:/home

    Можно рекурсивно скопировать все содержимое каталога:

    scp -r E:\ISO\ root@192.168.1.202:/home

    И наоборот, вы можете скопировать файл с удаленного сервера на ваш компьютер:

    scp.exe root@192.168.1.202:/home/CentOS-8.1.1911-x86_64.iso e:\tmp

    Итак, теперь вы можете прямо из Windows 10 подключаться к SSH серверам, копировать файлы с помощью scp без установки сторонних приложений и утилит.

    Можно ли разрешить или запретить доступ по SSH определенному пользователю или группе?

    Это краткое руководство проведет вас через шаги, чтобы разрешить или запретить SSH-доступ определенному пользователю или группе в Linux. Оно будет полезно, если вы хотите разрешить конкретному пользователю выполнять только определенный набор команд. В этой статье мы собираемся включить или отключить доступ по SSH для пользователя или группы, внеся несколько изменений в файл конфигурации SSH по умолчанию.

    В конфигурационном файле openSSH по умолчанию есть две директивы для разрешения и запрета доступа по SSH определенным пользователям или группе. Во-первых, давайте посмотрим, как разрешить или включить SSH-доступ для пользователя и группы. Обратите внимание, что все приведенные ниже команды должны запускаться от имени пользователя root или sudo.

    1. Разрешить SSH-доступ пользователю или группе

    Чтобы разрешить доступ по SSH для определенного пользователя, например sk, отредактируйте файл sshd_config:

    Нажмите «i», чтобы войти в режим вставки и добавить или изменить следующую строку:

    Замените «sk» своим именем пользователя. Обратите внимание на отступы между «AllowUsers» и «sk». Вы должны использовать Tab вместо пробела. Значение — добавьте слово «AllowUsers» и нажмите клавишу Tab, а затем укажите имя пользователя.

    Вы также можете указать более одного пользователя, как показано ниже.

    Чтобы разрешить всю группу, например, root , добавьте/отредактируйте следующую строку:

    Этот параметр позволит всем членам «корневой» группы подключаться к серверу Linux по ssh.

    Нажмите клавишу ESC, чтобы выйти из режима вставки, и введите : wq, чтобы сохранить и выйти из файла конфигурации SSH. Перезапустите службу SSH, чтобы изменения вступили в силу.

    Теперь пользователю sk и всем членам «корневой» группы разрешено подключаться к вашему Linux-серверу по ssh. Остальные пользователи (кроме sk и членов группы «root») не имеют доступа к системе через ssh.

    Чтобы проверить это, попробуйте подключиться к серверу Linux по ssh от имени любого из запрещенных пользователей:

    Вы получите следующее сообщение об ошибке:

    2. Запретить доступ по SSH пользователю или группе

    Чтобы отключить или запретить доступ по SSH для пользователя или группы, вам необходимо добавить/изменить следующие директивы в файле sshd_config вашего удаленного сервера.

    Чтобы запретить доступ по SSH конкретному пользователю с именем «sk», отредактируйте файл sshd_config:

    Добавьте/отредактируйте следующую строку в файле sshd_config.

    Убедитесь, что отступы правильные. Не используйте клавишу пробела. Нажмите клавишу Tab и добавьте имя пользователя.

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

    Аналогичным образом, чтобы запретить доступ по SSH для всей группы, например root , добавьте:

    Сохраните и выйдите из файла конфигурации ssh. Перезапустите службу ssh, чтобы изменения вступили в силу.

    Теперь попробуйте ssh на свой Linux-компьютер из заблокированной учетной записи пользователя, например sk:

    Вы получите следующее сообщение:

    3. Отключить вход в систему через SSH-root

    Доступ с root-доступом по ssh считается плохой практикой с точки зрения безопасности . Поэтому настоятельно рекомендуется отключить вход в систему SSH Root для защиты вашей системы.

    Чтобы отключить вход в систему root ssh, отредактируйте файл sshd_config:

    Найдите следующую строку, раскомментируйте ее и установите значение no .

    Перезапустите службу SSH, чтобы изменения вступили в силу немедленно:

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

    Повышение безопасности ssh

    Статья давно не обновлялась, поэтому информация могла устареть.

    Настройки OpenSSH располагаются в файле /etc/ssh/sshd_config. В этой статье будет описано 7 параметров sshd_config, которые следует изменить. В самом конфигурационом файле все строки, которые начинаются с символа «#» являются комментариями и не учитываются. И используются значения по умолчанию. Обратите внимание на то, что закоментированные параметры указывают как раз это значение. К примеру, ssh_config содержит следующую строку. Она означает, что у параметра PubkeyAuthentication (авторизация по ключу) стоит значение «yes», и оно является значением по умолчанию.

    Если потребуется изменить, то можно просто удалить «решетку», тем самым раскомментировав параметр и указать свое значение (к примеру с «yes» изменить на «no»), так как это представлено ниже:

    Все выше указанное было просто примером. Изменять параметр PubkeyAuthentication не требуется по причине того, что использование ключа для авторизации увеличивает безопасность и сводит на нет возможность подобрать пароль к пользователю, который имеет доступ к ssh. И вообще, в ходе чтения этой статьи вам потребуется отредактировать всего 7 параметров, которые будут описаны. Этого вполне достаточно. И так, приступим.

    Содержание

    Отключение возможность авторизации под суперпользователем (PermitRootLogin)

    По умолчанию зайти на удаленный сервер под пользователем root никто не запрещает. Но это не совсем безопасно. В место этого более правильно будет авторизовываться под пользовательской учетной записью и повышать свои привилегии с помощью команды ‘su -‘, либо использовать ‘sudo’.

    Если в вашей организации несколько системных администраторов и все они подключаются к серверу под суперпользователем, то не всегда можно узнать кто из администраторов находится на сервере. Поэтому после отключения возможности авторизации напрямую под пользователем root, системные администраторы сначала будут заходить под своей учетной записью и только после этого получать привилегии суперпользователя; это облегчить аудит сервера и действий, которые производят сисадмины. Для отключения вышеописанной функции следует отключить параметр PermitRootLogin, установив значение “no”.

    Предоставление доступа только указанным пользователям или группам (AllowUsers, AllowGroups)

    По умолчанию авторизоваться может любой пользователь сервера. Лучше ограничить круг пользователей, которым разрешен доступ к ssh. Это может быть полезно, когда вы создаете некоторое количество пользователей системе, но разрешить доступ по ssh хотите только некоторым. Так же это можно использоваться совместно с NIS или openLDAP (или другие внешние приложения), которым требуется авторизация. Каждый из пользователей вашей компании может иметь учетную запись на серверах NIS, openLDAP и т.п, но на по ssh на некоторые сервера требуется пускать только определенных. Для этого в конфигурационный файл sshd_config следует добавить определенных пользователей, существующих на сервере. В примере ниже это пользователи vasya, petya и kolya, которым разрешен вход на сервер. Имя пользователей разделены пробелами.

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

    Блокировка доступа определенным пользователям или группам (DenyUsers, DenyGroups)

    В противовес параметра, разрешающего доступ определенным пользователям или группам, вы так же можете указать пользователей или группы, которым запрещен вход на сервер. Для этого следует добавить в конфигурационный файл sshd_config параметр DenyUsers, в котором через пробел указать тех пользователей, которым запрещен доступ на сервер. На примере ниже это системные cvs и apache, а так же вполне реальный borya.

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

    Обратите внимание на то, что можно использовать комбинации запрещающих и разрешающих параметров: DenyUsers, AllowUsers, DenyGroups, и AllowGroups.

    Изменение порта SSHD (Port)

    По умолчанию, ssh работает на 22 порту. Основная масса атакующих не задумываясь пытается подключиться к этому порту и, используя словарный подбор имени пользователя и пароля, получить доступ к серверу. Если вы раскомментируете параметр Port и измените на что-либо другое, то это снизит интенсивность атак. К примеру, можно указать порт 222.

    Если журнальных файлах сервера (обычно, это /var/log/secure), вы увидете большое количество попыток авторизации, где в качестве имени пользователей указаны те, кого нет на сервере, и с тех IP-адресов, которые вам неизвестны, то будьте уверены это тот самый брут-форс о котором говорилось выше. Так же обратите внимание на то, при использовании данного способа, всем сотрудникам придется запоминать не только IP-адрес сервера, но и номер порта к которому следует подключаться.

    Изменение времени ожидания авторизации (LoginGraceTime)

    При попытке авторизоваться по ssh на сервер у вас есть 2 минуты, чтобы ввести логин и пароль. Если вы этого не сделаете, то соединение с сервером будет разорвано. 2 минуты ожидания авторизационных данных это довольно много. Следует ограничить до 1 минуты или даже до 30 секунд. Для этого следует изменить параметр LoginGraceTime путем редактирования файла sshd_config, и указать там требуемое время. В примере ниже это 1 минута.

    Ограничение авторизации по интерфейсу (ListenAddress)

    Если на сервере есть несколько сетевых интерфейсов, которые настроены на использования разных IP-адресов, то вы можете ограничить доступ и по этому параметру. К примеру, на сервере следующие 4 сетевых интерфейса:

    По умолчанию, ssh-сервер находится в состоянии ожидания подключения на всех IP-адресах. Если хотите, чтобы пользователи могли авторизовываться только на интерфейсах 2 и 3, то следует сделать так:

    Рассоединение при отсутствии активности в шелле (ClientAliveInterval)

    После того, как вы успешно авторизовались на сервер, вы можете захотеть сделать так, чтобы можно было разрывать соединение автоматически после того, как прошло некоторое время, в течение которого вы не производили никаких действий в консоли. Это обычно называется временем бездействия. В Bash, можно использовать переменную окружения TMOUT. В OpenSSH, это достигается путем комбинации параметров ClientAliveCountMax и ClientAliveInterval в конфигурационном файле sshd_config.

    • ClientAliveCountMax – Параметр указывает на полное количество сообщений, отсылаемого ssh-сервером для распознавания активности ssh-клиента. По умолчанию это 3.
    • ClientAliveInterval – Параметр указывает на время ожидания в секундах. После указанного времени ssh-сервер отошлет сообщение-запрос клиенту. По умолчанию значение этого параметра — 0. Т.е сервер не отсылает сообщение для проверки.

    Для того, чтобы ваш ssh-клиент автоматически отключался после 10 минут (600 секунд), следует внести изменения в конфигурационный файл sshd_config следующим образом:

    Читайте также:  Драйвера для принтера canon lbp6020b для windows 10
    Оцените статью