Как удалить ключ ssh в Windows
Обновлено: 21.11.2024
CAT периодически обновляет ключи хоста SSH на своих серверах в целях безопасности, что может привести к тому, что пользователи увидят сообщение об ошибке, подобное приведенному ниже, при попытке подключения к системе MCECS Linux.
Если вам не удается обойти это сообщение об ошибке, вам потребуется удалить старую запись ключа хоста в файле known_hosts.
В приведенном выше примере сообщение указывает на наличие записи для сервера rita.cecs.pdx.edu, расположенной в строке 10 файла known_hosts, которую необходимо удалить. Эти две строки дают нам соответствующую информацию.
С помощью этих двух частей информации вы можете выбрать один из нескольких способов редактирования файла known_hosts и снова подключиться к нашим системам.
Содержание
Пользователи MacOS, Linux и MobaXterm в Windows
Способ 1: команда ssh-keygen
Из командной строки вы можете удалить старую запись ключа хоста с помощью следующей команды. Обязательно замените $hostname на систему, к которой вы пытаетесь подключиться.
В приведенном выше примере вы должны запустить команду ssh-keygen -R rita.cecs.pdx.edu, чтобы удалить запись для rita.cecs.pdx.edu .
Способ 2: редактировать known_hosts напрямую
С помощью текстового редактора, такого как vim или emacs, вы можете отредактировать файл known_hosts и удалить старый ключ хоста. Например, если вы хотите использовать vim, вы должны выполнить следующую команду:
Затем следует удалить строку, содержащую старый ключ хоста. В приведенном выше примере ключ для rita.cecs.pdx.edu находится в строке 10.
Способ 3: удалить известные_хосты
Если ничего не помогает, вы можете удалить файл known_hosts. В качестве меры предосторожности вам следует сделать копию файла перед его удалением с помощью следующей команды:
Затем выполните следующую команду, чтобы удалить файл:
Как правило, CAT обновляет ключи SSH во всех своих системах одновременно. Для пользователей, которые подключаются к нескольким системам MCECS Linux, это может привести к повторному отображению сообщения об ошибке ключа хоста. В этом случае предпочтительнее удалить файл known_hosts и начать с нуля.
Пользователи MobaXterm также могут получить доступ к своему файлу known_hosts через Проводник. По умолчанию он будет находиться в папке Documents\MobaXterm\home\.ssh
Пользователи PuTTY в Windows
Если вы используете PuTTY в Windows, вам потребуется использовать редактор реестра, чтобы удалить старые ключи хоста SSH.
Сначала найдите редактор реестра или regedit в окне поиска Windows, а затем откройте приложение
Затем перейдите к HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys, чтобы найти список ключей хоста SSH
Большая часть аутентификации в средах Windows выполняется с помощью пары "имя пользователя-пароль", что хорошо подходит для систем, использующих общий домен. При работе между доменами, например между локальными и облачными системами, он становится уязвимым для вторжений методом грубой силы.
Для сравнения, в средах Linux обычно используются пары открытый и закрытый ключи для аутентификации, которая не требует использования угадываемых паролей. OpenSSH включает инструменты, помогающие в этом, а именно:
- ssh-keygen для создания ключей безопасности
- ssh-agent и ssh-add для безопасного хранения закрытых ключей
- scp и sftp для безопасного копирования файлов открытого ключа при первоначальном использовании сервера
В этом документе представлен обзор того, как использовать эти инструменты в Windows, чтобы начать использовать аутентификацию на основе ключей с SSH. Если вы не знакомы с управлением ключами SSH, мы настоятельно рекомендуем ознакомиться с документом NIST IR 7966 под названием «Безопасность интерактивного и автоматизированного управления доступом с использованием Secure Shell (SSH)».
О парах ключей
Пары ключей относятся к файлам открытого и закрытого ключей, которые используются определенными протоколами аутентификации.
Аутентификация с открытым ключом SSH использует асимметричные криптографические алгоритмы для создания двух файлов ключей — одного «частного» и другого «общедоступного». Файлы закрытых ключей являются эквивалентом пароля и должны оставаться защищенными при любых обстоятельствах. Если кто-то получит ваш закрытый ключ, он сможет войти под вашим именем на любой SSH-сервер, к которому у вас есть доступ. Открытый ключ — это то, что размещается на сервере SSH, и им можно делиться без ущерба для закрытого ключа.
При использовании аутентификации по ключу с сервером SSH сервер и клиент SSH сравнивают открытый ключ для имени пользователя, предоставленного с закрытым ключом. Если открытый ключ на стороне сервера не может быть сверен с закрытым ключом на стороне клиента, аутентификация завершается неудачно.
Многофакторная аутентификация может быть реализована с помощью пар ключей путем ввода парольной фразы при создании пары ключей (см. генерацию ключа пользователя ниже).Во время аутентификации у пользователя запрашивается парольная фраза, которая используется вместе с наличием закрытого ключа на клиенте SSH для аутентификации пользователя.
Генерация ключа хоста
К открытым ключам предъявляются особые требования ACL, которые в Windows приравниваются к разрешению доступа только администраторам и системным. При первом использовании sshd будет автоматически сгенерирована пара ключей для хоста.
Сначала необходимо установить сервер OpenSSH. См. раздел Начало работы с OpenSSH.
По умолчанию служба sshd запускается вручную. Чтобы запускать его каждый раз при перезагрузке сервера, выполните следующие команды из командной строки PowerShell с повышенными привилегиями на своем сервере:
Поскольку со службой sshd не связан ни один пользователь, ключи хоста хранятся в папке C:\ProgramData\ssh.
Генерация ключа пользователя
Чтобы использовать аутентификацию на основе ключей, сначала необходимо сгенерировать пары открытого и закрытого ключей для своего клиента. ssh-keygen.exe используется для создания файлов ключей, и могут быть указаны алгоритмы DSA, RSA, ECDSA или Ed25519. Если алгоритм не указан, используется RSA. Следует использовать надежный алгоритм и длину ключа, например Ed25519 в этом примере.
Чтобы сгенерировать файлы ключей с помощью алгоритма Ed25519, запустите в клиенте из командной строки PowerShell или cmd следующую команду:
Это должно отобразить следующее (где «имя пользователя» заменено вашим именем пользователя):
Вы можете нажать Enter, чтобы принять значение по умолчанию, или указать путь и/или имя файла, в котором вы хотите сгенерировать ключи. На этом этапе вам будет предложено использовать парольную фразу для шифрования ваших файлов закрытого ключа. Это может быть пустым, но не рекомендуется. Парольная фраза работает с файлом ключа для обеспечения двухфакторной аутентификации. В этом примере мы оставляем парольную фразу пустой.
Теперь у вас есть пара открытый/закрытый ключ Ed25519 в указанном месте. Файлы .pub — это открытые ключи, а файлы без расширения — закрытые ключи:
Помните, что файлы закрытых ключей являются эквивалентом пароля и должны быть защищены так же, как вы защищаете свой пароль. Чтобы помочь в этом, используйте ssh-agent для безопасного хранения закрытых ключей в контексте безопасности Windows, связанном с вашим входом в Windows. Для этого запустите службу ssh-agent от имени администратора и используйте ssh-add для сохранения закрытого ключа.
После выполнения этих шагов всякий раз, когда для аутентификации от этого клиента требуется закрытый ключ, ssh-agent автоматически извлекает локальный закрытый ключ и передает его вашему SSH-клиенту.
Настоятельно рекомендуется создать резервную копию закрытого ключа в безопасном месте, а затем удалить его из локальной системы, после добавления в ssh-agent. Закрытый ключ не может быть получен от агента, если используется надежный алгоритм, такой как Ed25519 в этом примере. Если вы потеряете доступ к закрытому ключу, вам придется создать новую пару ключей и обновить открытый ключ во всех системах, с которыми вы взаимодействуете.
Развертывание открытого ключа
Чтобы использовать пользовательский ключ, созданный выше, содержимое вашего открытого ключа (~\.ssh\id_ed25519.pub) необходимо поместить на сервер в текстовый файл, имя и расположение которого зависит от того, учетная запись пользователя является членом группы локальных администраторов или стандартной учетной записью пользователя.
Стандартный пользователь
Содержимое вашего открытого ключа (~\.ssh\id_ed25519.pub) необходимо поместить на сервер в текстовый файл с именем author_keys в папке C:\Users\username\.ssh\. Клиент OpenSSH включает scp, утилиту для безопасной передачи файлов, помогающую в этом.
В приведенном ниже примере открытый ключ копируется на сервер (где «имя пользователя» заменяется вашим именем пользователя). Сначала вам нужно будет использовать пароль для учетной записи пользователя на сервере.
Административный пользователь
Содержимое вашего открытого ключа (~\.ssh\id_ed25519.pub) необходимо поместить на сервер в текстовый файл с именем administrators_authorized_keys в C:\ProgramData\ssh\. Клиент OpenSSH включает scp, утилиту для безопасной передачи файлов, помогающую в этом. ACL для этого файла необходимо настроить так, чтобы разрешить доступ только администраторам и системе.
В приведенном ниже примере открытый ключ копируется на сервер и настраивается ACL (где «имя пользователя» заменяется вашим именем пользователя). Сначала вам нужно будет использовать пароль для учетной записи пользователя на сервере.
В этом примере показаны шаги по созданию файлаadmins_authorized_keys. Если он запускается несколько раз, он каждый раз перезаписывает этот файл. Чтобы добавить открытый ключ для нескольких пользователей с правами администратора, вам необходимо добавить в этот файл каждый открытый ключ.
Эти шаги завершают настройку, необходимую для использования проверки подлинности на основе ключей с OpenSSH в Windows. После этого пользователь может подключиться к хосту sshd с любого клиента, у которого есть закрытый ключ.
Возникли проблемы с подключением через SSH или SFTP?Если вы получаете сообщение об ошибке, подобное приведенному ниже, это обычно происходит из-за того, что IP-адрес или отпечаток ключа SSH изменились (часто из-за обновления сервера), а старый все еще хранится в вашем файле known_hosts. Известные_хосты используются для соединений SSH и SFTP.
Не удается подключиться через SSH или SFTP — удалите известные_узлы SSH
Если у вас возникли проблемы с подключением, сначала убедитесь, что вы используете правильный пароль. Вы всегда можете изменить свой пароль SFTP или SSH в MyKinsta.
Если проблема не устранена, следуйте приведенным ниже инструкциям, чтобы удалить записи из файла known_hosts.
Mac или Linux
- Откройте Терминал и отредактируйте файл known_hosts в текстовом редакторе nano с помощью следующей команды: ол>
- Удалите все записи, начинающиеся с IP-адреса хоста вашего сайта (находится в разделе SFTP/SSH на вкладке «Информация» вашего сайта в MyKinsta). Вы можете удалить каждую строку, которую нужно удалить, с помощью Ctrl+k.
- Затем сохраните документ (Ctrl+x). При появлении запроса ответьте "Да" и не меняйте имя файла (просто нажмите "Ввод" при запросе имени файла, чтобы подтвердить и сохранить текущее имя).
- › Почему прозрачные чехлы для телефонов желтеют?
- › Почему не было Windows 9?
- › Как восстановить метки панели задач в Windows 11
- › Как установить Google Play Маркет в Windows 11
- › Что означает XD и как вы его используете?
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
Окна
Если вы работаете в Windows, у него также есть аналогичный файл known_hosts, но учетные данные и IP-адрес хранятся в реестре.
-
Запустите regedit из меню «Пуск». В приведенном ниже примере используется Windows 10.
Редактор реестра Windows
SshHostKeys
Войдите на MyKinsta или ознакомьтесь с демо-аккаунтом
© Kinsta Inc., 2022. Все права защищены. Kinsta® и WordPress® являются зарегистрированными товарными знаками. Юридическая информация.
Ян Пол
Иэн Пол
Писатель
Ян Пол — независимый писатель, который более десяти лет пишет о технологиях. Помимо написания статей для How-To Geek, он регулярно участвует в PCWorld в качестве критика, автора статей, репортера, охотника за сделками и обозревателя. Его работы также публиковались в Интернете в The Washington Post, ABC News, MSNBC, Reuters, Macworld, Yahoo Tech, Tech.co, TechHive, The Huffington Post и Lifewire. Его статьи регулярно публикуются на многочисленных сайтах IDG, включая CIO, Computerworld, GameStar, Macworld UK, Tech Advisor и TechConnect. Подробнее.
Если частью вашей жизни является вход на удаленный сервер, будь то личный блог, установка Nextcloud или отправка последних изменений на GitHub, вам потребуются ключи SSH. В Windows 10 и 11 мы избалованы выбором, когда дело доходит до создания новых ключей.
Вот как создать все ключи SSH, которые вам когда-либо понадобятся, используя три разных метода. Мы покажем вам, как сгенерировать исходный набор ключей, а также дополнительные, если вы хотите создать разные ключи для нескольких сайтов.
Вариант 1. Создание ключей в командной строке
В Windows 10 появился встроенный клиент OpenSSH после обновления от апреля 2018 года. В Windows 11 эта функция также встроена.
Чтобы использовать его, откройте командную строку Windows, нажав клавишу Windows и введя «cmd».
Совет. Если вы часто пользуетесь командной строкой, мы настоятельно рекомендуем установить Windows Terminal из Магазина Windows (по умолчанию он установлен в Windows 11). Это программа с вкладками, которая может запускать командную строку, PowerShell и подсистему Windows для Linux в одном окне. В нем также есть забавные функции, такие как установка фоновых изображений.
После того, как вы введете команду, нажмите Enter, после чего вам будет предложено дать ключу имя и сохранить его в определенном месте. Если вы используете значения по умолчанию, ваши ключи будут сохранены в C:\User[YourUserName].ssh — при условии, что на диске C хранится ваша учетная запись пользователя.
Далее вам будет предложено ввести кодовую фразу. Мы настоятельно рекомендуем вам сделать это, чтобы сохранить ваш ключ в безопасности.Если вы боитесь забыть свой пароль, ознакомьтесь с обзором лучших менеджеров паролей на Review Geek. Если вам действительно не нужна кодовая фраза, просто нажмите Enter.
Ваши ключи созданы, сохранены и готовы к использованию. Вы увидите, что у вас есть два файла в папке «.ssh»: «id_rsa» без расширения файла и «id_rsa.pub». Последний — это ключ, который вы загружаете на серверы для аутентификации, а первый — закрытый ключ, которым вы не делитесь с другими.
Примечание. Если вы не видите свою папку «.ssh» в проводнике, ознакомьтесь с нашим руководством о том, как отобразить скрытые файлы и папки в Windows.
Если вы хотите создать несколько ключей для разных сайтов, это тоже несложно. Скажем, например, вы хотели использовать ключи по умолчанию, которые мы только что создали для вашего сервера в Digital Ocean, и вы хотели создать другой набор ключей для GitHub. Вы будете следовать тому же процессу, что и выше, но когда придет время сохранить ваш ключ, вы просто дадите ему другое имя, например «id_rsa_github» или что-то подобное. Вы можете делать это столько раз, сколько захотите. Просто помните, что чем больше у вас ключей, тем большим количеством ключей вы должны управлять. Когда вы переходите на новый компьютер, вам нужно переместить эти ключи вместе с другими файлами, иначе вы рискуете потерять доступ к своим серверам и учетным записям, по крайней мере временно.
Вариант 2. Создание ключей в WSL
Если вы являетесь пользователем WSL, вы можете использовать аналогичный метод при установке WSL. Фактически, это в основном то же самое, что и в версии для командной строки. Почему вы хотите это сделать? Если вы в основном работаете в Linux для работы с командной строкой, то имеет смысл хранить ваши ключи в WSL.
Откройте терминал Windows или встроенную командную строку Ubuntu (при условии, что вы установили Ubuntu Linux). Тогда это очень похоже на Windows. В отличие от Windows, лучше указать, нужен ли вам ключ RSA или что-то вроде Ed25519.
Скажем, вы хотите создать ключ RSA-4096. Вы должны ввести следующую команду:
Если вам нужен Ed25519, рекомендуется следующий способ:
Рекомендуется добавить ваш адрес электронной почты в качестве идентификатора, хотя вам не нужно делать это в Windows, поскольку версия Microsoft автоматически использует для этого ваше имя пользователя и имя вашего ПК.
Опять же, чтобы сгенерировать несколько ключей для разных сайтов, просто пометьте что-нибудь вроде «_github» в конце имени файла.
Вариант 3. Создание ключей с помощью PuTTY
Долгие годы старая школьная программа PuTTY была популярным способом связи с сервером в Windows. Если у вас уже есть эта программа в вашей системе, она также предлагает способ создания ключей SSH.
PuTTY поставляется с рядом вспомогательных программ, одна из которых называется генератором ключей PuTTY. Чтобы открыть его, найдите его, нажав клавишу Windows и введя «puttygen», или выполните поиск в меню «Пуск».
Открыв его, в нижней части окна вы увидите различные типы ключей, которые необходимо сгенерировать. Если вы не уверены, что использовать, выберите «RSA», а затем в поле ввода «Количество битов в сгенерированном ключе» введите «4096». Другой вариант — выбрать «EdDSA», а затем в раскрывающемся меню, которое появляется под ним, убедиться, что выбран «Ed25519 (255 бит)».
Теперь все, что вам нужно сделать, это нажать «Создать», и PuTTY начнет работать. Это не должно занять слишком много времени, в зависимости от мощности вашей системы, и PuTTy попросит вас перемещать мышь внутри окна, чтобы создать немного больше случайности во время генерации ключа.
После этого нажмите «Сохранить открытый ключ», чтобы сохранить открытый ключ, и сохраните его там, где вы хотите, с именем «id_rsa.pub» или «id_ed25519.pub», в зависимости от того, выбрали ли вы RSA или Ed25519 на предыдущем шаге. .
Затем, чтобы получить закрытый ключ, требуется дополнительный шаг. По умолчанию PuTTY генерирует ключи PPK для использования с клиентом PuTTy. Однако, если вам нужен OpenSSH, в верхней части окна выберите «Конверсии» > «Экспорт ключа OpenSSH», а затем сохраните файл как «id_rsa» или «id_ed25519» без окончания файла.
Создать ключи SSH очень просто, какой бы метод вы ни выбрали. Мы рекомендуем использовать вариант командной строки Windows, если у вас еще не установлен PuTTY, или если вы предпочитаете Linux и не понимаете эту систему.
Читайте также: