Как посмотреть ssh windows

Как использовать ключи SSH с Windows в Azure How to use SSH keys with Windows on Azure

Эта статья предназначена для пользователей Windows, желающих создать и использовать ключи Secure Shell (SSH) для подключения к виртуальным машинам Linux в Azure. This article is for Windows users who want to create and use secure shell (SSH) keys to connect to Linux virtual machines (VMs) in Azure. Вы также можете создать и сохранить ключи SSH в портал Azure, которые будут использоваться при создании виртуальных машин на портале. You can also generate and store SSH keys in the Azure portal to use when creating VMs in the portal.

Чтобы использовать ключи SSH из клиента Linux или macOS, ознакомьтесь с краткими инструкциями. To use SSH keys from a Linux or macOS client, see the quick steps. Более подробный обзор SSH см. в статье Создание ключей SSH и управление ими для проверки подлинности на виртуальной машине Linux в Azure. For a more detailed overview of SSH, see Detailed steps: Create and manage SSH keys for authentication to a Linux VM in Azure.

Общие сведения о SSH и ключах Overview of SSH and keys

SSH — это протокол зашифрованного соединения, позволяющий выполнять безопасные входы по незащищенным соединениям. SSH is an encrypted connection protocol that allows secure sign-ins over unsecured connections. SSH — это протокол подключения по умолчанию для виртуальных машин Linux, размещенных в Azure. SSH is the default connection protocol for Linux VMs hosted in Azure. Хотя протокол SSH и обеспечивает зашифрованное подключение, при использовании паролей с SSH виртуальные машины все равно не защищены от атак методом подбора. Although SSH itself provides an encrypted connection, using passwords with SSH still leaves the VM vulnerable to brute-force attacks. Мы рекомендуем подключаться к виртуальной машине по протоколу SSH с помощью пары открытого и закрытого ключей, также называемых ключами SSH. We recommend connecting to a VM over SSH using a public-private key pair, also known as SSH keys.

Пара открытого и закрытого ключей аналогична блокировке передней дверцы. The public-private key pair is like the lock on your front door. Блокировка предоставляется общедоступной, любой пользователь с правом ключом может открыть дверцу. The lock is exposed to the public, anyone with the right key can open the door. Ключ является частным и предоставляется только доверенным людям, так как его можно использовать для разблокировки дверцы. The key is private, and only given to people you trust because it can be used to unlock the door.

Открытый ключ размещается на виртуальной машине Linux при создании виртуальной машины. The public key is placed on your Linux VM when you create the VM.

Закрытый ключ остается в локальной системе. The private key remains on your local system. Его нужно защищать Protect this private key. и нельзя никому предоставлять. Do not share it.

При подключении к виртуальной машине Linux виртуальная машина проверяет SSH-клиент, чтобы убедиться, что он имеет правильный закрытый ключ. When you connect to your Linux VM, the VM tests the SSH client to make sure it has the correct private key. Если у клиента есть закрытый ключ, он получает доступ к виртуальной машине. If the client has the private key, it’s granted access to the VM.

В зависимости от политик безопасности Организации можно повторно использовать одну пару ключей для доступа к нескольким виртуальным машинам и службам Azure. Depending on your organization’s security policies, you can reuse a single key pair to access multiple Azure VMs and services. Для каждой виртуальной машины не требуется отдельная пара ключей. You do not need a separate pair of keys for each VM.

Открытый ключ можно использовать совместно с любым пользователем, но только вы (или ваша локальная инфраструктура безопасности) должны иметь доступ к вашему закрытому ключу. Your public key can be shared with anyone, but only you (or your local security infrastructure) should have access to your private key.

Поддерживаемые форматы ключей SSH Supported SSH key formats

В настоящее время платформа Azure поддерживает пары из открытого и закрытого ключей SSH-2 RSA длиной не менее 2048 битов. Azure currently supports SSH protocol 2 (SSH-2) RSA public-private key pairs with a minimum length of 2048 bits. Другие форматы ключей, например ED25519 и ECDSA, не поддерживаются. Other key formats such as ED25519 and ECDSA are not supported.

Читайте также:  Слетает время windows server 2012

SSH-клиенты SSH clients

В последние версии Windows 10 входят клиентские команды OpenSSH для создания и использования ключей SSH и создания SSH-подключений из PowerShell или командной строки. Recent versions of Windows 10 include OpenSSH client commands to create and use SSH keys and make SSH connections from PowerShell or a command prompt. Это самый простой способ создать SSH-подключение к виртуальной машине Linux с компьютера Windows. This is the easiest way to create an SSH connection to your Linux VM, from a Windows computer.

Можно также использовать Bash в Azure Cloud Shell для подключения к виртуальной машине. You can also use Bash in the Azure Cloud Shell to connect to your VM. Cloud Shell можно использовать в веб-браузере, портал Azureили в качестве терминала в Visual Studio Code с помощью расширения учетной записи Azure. You can use Cloud Shell in a web browser, from the Azure portal, or as a terminal in Visual Studio Code using the Azure Account extension.

Вы также можете установить подсистему Windows для Linux , чтобы подключиться к виртуальной машине по протоколу SSH и использовать другие собственные средства Linux в оболочке bash. You can also install the Windows Subsystem for Linux to connect to your VM over SSH and use other native Linux tools within a Bash shell.

Создание пары ключей SSH Create an SSH key pair

Создайте пару ключей SSH с помощью ssh-keygen команды. Create an SSH key pair using the ssh-keygen command. Введите имя файла или используйте значение по умолчанию, показанное в скобках (например, C:\Users\username/.ssh/id_rsa ). Enter a filename, or use the default shown in parenthesis (for example C:\Users\username/.ssh/id_rsa ). Введите парольную фразу для файла или оставьте пустым парольную фразу, если вы не хотите использовать парольную фразу. Enter a passphrase for the file, or leave the passphrase blank if you do not want to use a passphrase.

Создание виртуальной машины с помощью ключа Create a VM using your key

Чтобы создать виртуальную машину Linux, использующую ключи SSH для проверки подлинности, укажите открытый ключ SSH при создании виртуальной машины. To create a Linux VM that uses SSH keys for authentication, provide your SSH public key when creating the VM.

С помощью Azure CLI вы указываете путь и имя файла для открытого ключа с помощью az vm create и —ssh-key-value параметра. Using the Azure CLI, you specify the path and filename for the public key using az vm create and the —ssh-key-value parameter.

В PowerShell используйте New-AzVM и добавьте ключ SSH в конфигурацию виртуальной машины с помощью. With PowerShell, use New-AzVM and add the SSH key to the VM configuration using`. Пример см. в разделе Краткое руководство. Создание виртуальной машины Linux в Azure с помощью PowerShell. For an example, see Quickstart: Create a Linux virtual machine in Azure with PowerShell.

При выполнении большого количества развертываний с помощью портала может потребоваться передать открытый ключ в Azure, где его можно легко выбрать при создании виртуальной машины на портале. If you do a lot of deployments using the portal, you might want to upload your public key to Azure, where it can be easily selected when creating a VM from the portal. Дополнительные сведения см. в разделе Отправка ключа SSH. For more information, see Upload an SSH key.

Подключение к виртуальной машине Connect to your VM

С помощью открытого ключа, развернутого на виртуальной машине Azure, и закрытого ключа в локальной системе установите SSH-подключение к виртуальной машине, используя ее IP-адрес или DNS-имя. With the public key deployed on your Azure VM, and the private key on your local system, SSH to your VM using the IP address or DNS name of your VM. Замените azureuser и 10.111.12.123 в следующей команде на имя пользователя администратора, IP-адрес (или полное доменное имя) и путь к закрытому ключу: Replace azureuser and 10.111.12.123 in the following command with the administrator user name, the IP address (or fully qualified domain name), and the path to your private key:

Если вы настроили парольную фразу при создании пары ключей, введите парольную фразу при появлении запроса. If you configured a passphrase when you created your key pair, enter the passphrase when prompted.

Если виртуальная машина использует политику доступа JIT, запросите доступ, прежде чем подключиться к виртуальной машине. If the VM is using the just-in-time access policy, you need to request access before you can connect to the VM. Дополнительные сведения о политике JIT см. в статье Управление доступом к виртуальным машинам с помощью JIT-доступа. For more information about the just-in-time policy, see Manage virtual machine access using the just in time policy.

Дальнейшие действия Next steps

Сведения о ключах SSH в портал Azure см. в разделе Создание и хранение ключей SSH в портал Azure , которые используются при создании виртуальных машин на портале. For information about SSH keys in the Azure portal, see Generate and store SSH keys in the Azure portal to use when creating VMs in the portal.

Подробные инструкции, параметры и дополнительные примеры работы с ключами SSH приведены в статье Подробные инструкции: создание ключей SSH для аутентификации на виртуальной машине Linux в Azure и управление этими ключами. For detailed steps, options, and advanced examples of working with SSH keys, see Detailed steps to create SSH key pairs.

Читайте также:  Как взломать вай фай через кали линукс

Для создания ключей SSH и установления SSH-подключений к виртуальным машинам Linux можно также использовать PowerShell в Azure Cloud Shell. You can also use PowerShell in Azure Cloud Shell to generate SSH keys and make SSH connections to Linux VMs. Ознакомьтесь с разделом Краткое руководство по использованию PowerShell в Azure Cloud Shell (предварительная версия). See the PowerShell quickstart.

Если при подключении к виртуальным машинам Linux по протоколу SSH возникают трудности, см. статью Troubleshoot SSH connections to an Azure Linux VM that fails, errors out, or is refused (Устранение неполадок с ошибками, сбоем или отклонением SSH-подключения к виртуальной машине Azure Linux). If you have difficulty using SSH to connect to your Linux VMs, see Troubleshoot SSH connections to an Azure Linux VM.

Руководство: SSH в Терминале Windows Tutorial: SSH in Windows Terminal

В Windows 10 встроен клиент SSH, который можно использовать в Терминале Windows. Windows 10 has a built-in SSH client that you can use in Windows Terminal.

В этом руководстве содержатся сведения о настройке профиля в Терминале Windows, использующем SSH. In this tutorial, you’ll learn how to set up a profile in Windows Terminal that uses SSH.

Создание профиля Create a profile

Вы можете запустить сеанс SSH в командной строке, выполнив ssh user@machine . После этого вам будет предложено ввести пароль. You can start an SSH session in your command prompt by executing ssh user@machine and you will be prompted to enter your password. Вы можете создать профиль Терминала Windows, выполняющий этот процесс при запуске, добавив параметр commandline в профиль в файле settings.json file. You can create a Windows Terminal profile that does this on startup by adding the commandline setting to a profile in your settings.json file.

Указание начального каталога Specify starting directory

Чтобы указать начальный каталог для сеанса SSH, вызываемого с помощью Терминала Windows, можно использовать следующую команду: To specify the starting directory for a ssh session invoked by Windows Terminal, you can use this command:

Флаг -t приводит к выделению псевдотерминала. The -t flag forces pseudo-terminal allocation. Эту возможность можно использовать для выполнения произвольных интерактивных программ на удаленном компьютере, например при реализации служб меню. This can be used to execute arbitrary screen-based programs on a remote machine, e.g. when implementing menu services. Вам потребуется использовать экранированные двойные кавычки, так как производные оболочки Bourne shell не выполняют дополнительную обработку строки в одинарных кавычках. You will need to use escaped double quotes as bourne shell derivatives don’t do any additional parsing for a string in single quotes.

Дополнительная информация: For more information, see:

Настройка SSH аутентификации по ключам в Windows 10 / 2019

В этой статье мы настроим SSH аутентификацию в Windows по RSA-ключам для безопасного доступа к удаленным системам. Мы покажем, как сгенерировать RSA-ключи (сертификаты) в Windows и настроить сервер OpenSSH в Windows 10/Windows Server 2019 для авторизации по ключам (без паролей).

Аутентификация по в SSH ключам широко используется в мире Linux, а в Windows этот функционал появился относительно недавно. Идея заключается в том, что на SSH сервере добавляется открытый ключ клиента и при подключении сервер проверяет наличие соответствующего закрытого ключа у клиента.

Генерация RSA ключей на клиенте Windows

На клиентском, компьютере, с которого вы будет подключаетесь к удалённому серверу Windows с OpenSSH, вам нужно сгенерировать пару RSA-ключей (открытый и закрытый). Закрытый ключ хранится на клиенте (не отдавайте его никому!), а открытый ключ помещается на SSH сервер в файл authorized_keys. Чтобы на клиенте Windows сгенерировать RSA ключи, вы должны установить клиент OpenSSH.

В Windows 10 1809 и Windows Server 2019 клиент OpenSSH устанавливается как отдельный встроенный компонент:

Add-WindowsCapability -Online -Name OpenSSH.Client

Запустите обычную (непривилегированную сессию PowerShell) и сгенерируйте пару RSA 2048 ключей с помощью команды:

Утилита попросит вас указать пароль для защиты закрытого ключа. Если вы укажете пароль, то каждый раз при использовании этого ключа для SSH авторизации, вы должны будете вводить этот пароль. Я не стал указывать пароль для ключа (не рекомендуется).

Утилита ssh-keygen создаст каталог .ssh в профиле текущего пользователя Windows (C:\Users\your_username) и поместит в него 2 файла:

  • id_rsa – закрытый ключ
  • id_rsa.pub – публичный ключ

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

SSH Agent может хранить закрытые ключи и предоставлять их в контексте безопасности текущего пользователя. Запустите службу ssh-agent и настройте автоматический запуск с помощью PowerShell команд управления службами:

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

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

Настройка OpenSSH в Windows для авторизации по ключам

Теперь открытый ключ, который вы сгенерировали на клиенте, нужно скопировать на ваш SSH сервер (в этом примере это удаленный компьютер с Windows 10 1903 и настроенной службой OpenSSH).

Скопируйте файл id_rsa.pub в каталог .ssh профиля пользователя, под которым вы будете подключаться к SSH серверу. Например, у меня в Windows 10 создан пользователь admin, значит я должен скопировать ключ в файл C:\Users\admin\.ssh\authorized_keys.

Можно скопировать ключ на SSH сервер с клиента с помощью SCP:

Читайте также:  Windows 10 32bit 64bit 1909

scp C:\Users\youruser\.ssh\id_rsa.pub admin@192.168.1.90:c:\users\admin\.ssh\authorized_keys

Теперь вы можете подключиться к SSH серверу без ввода пароля пользователя. А если вы не задали пароль (passphrase) для закрытого ключа, вы сразу автоматически подключитесь к вашему удаленному серверу Windows.

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

ssh (username)@(имя или IP адрес SSH сервера)

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

ssh admin@192.168.1.90 -i «C:\Users\youruser\.ssh\id_rsa»

Если вы не смогли подключиться к вашему SSH серверу по RSA ключу, и у вас все равно запрашивается пароль, скорее всего пользователь, под которым вы подключаетесь, входит в группу локальных администраторов сервера (SID группы S-1-5-32-544). Об этом далее.

Вход по SSH ключу для локальных администраторов Windows

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

В первую очередь, вместо ключа authorized_keys в профиле пользователя нужно использовать файл с ключами C:\ProgramData\ssh\administrators_authorized_keys. Вам нужно добавить ваш ключ в этот текстовый файл (в целях безопасности права на этот файл должны быть только у группы Administrators и SYSTEM).

Чтобы использовать ключ authorized_keys из профиля пользователя, и не переносить данные открытого ключа в файл administrators_authorized_keys, вы можете закомментировать строку в файле конфигурации OpenSSH («C:\ProgramData\ssh\sshd_config«).

Дополнительно в файле sshd_config вы можете разрешить вход по RSA ключам:

И запретить доступ по паролю:

После сохранения изменений в файле sshd_config не забудьте перезапустить службу sshd.

Еще один небольшой нюанс. В старых версиях OpenSSH нужно было предоставить права службе NT Service\sshd на чтение ключа authorized_keys.

Для этого нужно выполнить одно из следующих действий:

  • Установить модуль OpenSSHUtils: Install-Module -Force OpenSSHUtils -Scope AllUsers . Для изменения прав на файл нужно выполнить команду: Repair-AuthorizedKeyPermission -FilePath C:\Users\admin\.ssh\authorized_keys ;
  • Измените NTFS права на файл с помощью модуля NTFSSecurity или icacls;
  • Либо вы можете в конфигурационном файле sshd_config отключить режим StrictModes. По умолчанию этот режим включен и запрещает аутентификацию по ключам, если закрытый и открытый ключ недостаточно защищены. Раскомментируйте строку #StrictModes yes , измените на StrictModes no .

Итак, вы настроили SSH аутентификацию в Windows по открытому RSA-ключу (сертификату). Теперь вы можете использовать такой способ аутентификации для безопасного доступа к удаленным северам, автоматического поднятия проброса портов в SSH туннеле, запуска скриптов и других задачах автоматизации.

Спасибо! Первая рабочая статья -_ stackoverflow.com уже весь на эту тему перечитал).

debug1: Found key in C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/known_hosts:9
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/id_rsa (000002372A7B17D0), agent
debug2: key: C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/id_dsa (0000000000000000)
debug2: key: C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/id_ecdsa (0000000000000000)
debug2: key: C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/id_ed25519 (0000000000000000)
debug2: key: C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/id_xmss (0000000000000000)
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:5U76PQzmZJ7xce9TDvyt1P/sqNCX/GHOZSLk3TR3x1o C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: C:\\Users\\\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214/.ssh/id_dsa

Можете подсказать что не так?

Какую команду используете для SSH подключения? Ключ добавлен в ssh-agent?
Попробуйте указать путь к вашему файлу с закрытым ключом вручную:
ssh root@192.168.1.90 -i «C:\Users\user1\.ssh\id_rsa»

При генерации ключа не нашел файлы в профиле пользователя. Они были в «C:\Windows\System32»

Скорее всего вы запускали cmd\powershell.exe в режиме administrator, поэтому путь по-умолчанию был c:\windows\system32

А как это работает, если сервер на Linux, а клиент на Windows?

Да, все аналогично. Только в linux другое место хранения ключей (в зависимости от дистрибутива)

Ну наконец то получилось по ssh ключу подключиться. Мне нужно было настроить SFTP на Windows 10. Имеются 3 компа, на первом Windows 10 с openssh server и запущенным процессом sftp-server.exe, на втором компе клиенте тоже Windows 10 установил openssh client, сгенерировал публичный и приватный ключ, публичный скопировал на первый комп с Windows 10 где установлен openssh server, переименовал его из id_rsa.pub в authorized_keys. Затем на втором компе клиенте нужно установить PuTTY Key Generator и сконвертировать приватный ключ id_rsa в id_rsa.ppk это нужно чтобы подключиться по SFTP через WinSCP или FileZilla client к серверу openssh. Проблема была в том что всё равно просил пароль от учётной записи администратора от первого компа на сервере. После того как прописал «PubkeyAuthentication yes» и «PasswordAuthentication no» затем «StrictModes no» и закомментировал «# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys» стало заходить без пароля. Есть ещё вопрос. Третий комп это ноутбук с Kubuntu, установил FileZilla client, уже имеется каталог по адресу /home/sergei/.ssh/ в этот каталог скопировал файл id_rsa.ppk со второго компа, то есть с Windows 10. При подключении FileZilla client выбираю протокол SFTP всё как положено, указываю файл с приватным ключом /home/sergei/.ssh/id_rsa.ppk и подключаюсь без ввода пароля, всё работает. Но я так понимаю что это неправильно? На Kubuntu тоже надо генерировать ключи приватный и публичный? И где тогда размещать новый публичный ключ на сервере, если на нём уже есть C:\Users\Sergei\.ssh\authorized_keys

В файле authorized_keys можно указывать несколько ключей. Просто скопируйте значение второго ключа с новой строки и сохраните файл.

Оцените статью