Создать ключ ssh для mac os

Обновлено: 21.11.2024

Следуйте этому простому руководству, чтобы создать ключ SSH с помощью команды ssh-keygen в Терминале.

Надежная онлайн-безопасность стала обязательной для многих из нас, и по мере того, как злоумышленники становятся умнее, инструменты и средства защиты должны становиться все сильнее, чтобы не отставать от них. Secure Shell (SSH) – это протокол шифрования, позволяющий безопасно отправлять данные путем сопряжения открытого ключа с закрытым ключом.

В различных ситуациях, включая удаленный доступ к серверу или добавление безопасности к платформе хостинга Git, может потребоваться создание собственного ключа. Учетные данные для доступа стали важной частью онлайн-безопасности, а macOS и приложение «Терминал» упрощают создание ключа SSH. Давайте посмотрим на процесс.

Как создать ключ SSH с помощью SSH-Keygen

С помощью команды ssh-keygen вы можете выполнять все функции, необходимые для создания полного и готового к использованию ключа SSH. При создании вы можете указать используемый алгоритм, длину в битах и ​​другие характеристики вашего ключа. Дополнительные сведения об этих концепциях см. в последующих разделах этого руководства.

Для создания ключа SSH в macOS выполните следующие действия:

Запустите Терминал из Приложения > Утилиты или выполните поиск Spotlight. Введите команду ssh-keygen с нужными параметрами.

Мы обсудим варианты позже, но вот пример того, как должна выглядеть типичная команда ssh-keygen:

Нужный алгоритм следует за командой -t, а необходимая длина ключа идет после ввода -b. Если вы исключите -b, ssh-keygen будет использовать количество битов по умолчанию для выбранного вами типа ключа. Надежный алгоритм шифрования с ключом хорошего размера будет наиболее эффективным для обеспечения безопасности ваших данных.

Нажмите Enter, чтобы начать процесс генерации. Нажмите ENTER еще раз, чтобы принять расположение файла по умолчанию. Вы можете изменить это, если необходимо, но, как правило, вы хотите хранить свои ключи в предложенной папке.

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

Повторно введите кодовую фразу, чтобы завершить процесс и сгенерировать открытый и закрытый ключи.

macOS хранит оба ключа в каталоге ~/.ssh/. В одном файле хранится ваш открытый SSH-ключ, а в другом — ваша личная версия, которой вы никогда не должны делиться с кем-либо.

Если вам не нравится Терминал, существует несколько других SSH-клиентов для Mac, поэтому вы можете выбрать вариант, который лучше всего соответствует вашим потребностям.

Скопируйте ключ SSH, чтобы добавить его на хостинговые платформы Git и в другие места

После того как вы завершите процесс генерации, вы можете использовать Терминал для копирования открытого ключа для распространения. Вы также должны отметить имя файла, используемое при создании. В приведенном примере macOS сохранила общедоступный ключ SSH в файле id_ecdsa.pub, так что это то место, которое нам нужно настроить.

Чтобы скопировать открытый ключ SSH в буфер обмена, выполните следующие действия:

  1. Запустить терминал.
  2. Введите информацию о pbcopy: распространенные типы шифрования и почему вам не следует создавать свои собственные

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

Полезные команды, которые нужно знать при создании ключа SSH на Mac

Мы обсудили основные компоненты команды ssh-keygen; однако в некоторых случаях может потребоваться выполнение других функций. Здесь мы перечислим некоторые соответствующие команды и их использование:

  • -t: используйте эту команду для ввода алгоритма, который вы хотите использовать. RSA, ECDSA и Ed25519 являются распространенными и жизнеспособными вариантами.
  • -b: укажите длину ключа, введя количество используемых битов. Перед вводом команды -b всегда проверяйте требования выбранного алгоритма, так как действуют некоторые ограничения.
  • -p: парольную фразу ключа можно изменить с помощью команды -p. Просто включите -p с ssh-keygen, и Терминал запросит местоположение файла. Введите путь к соответствующему ключу и при появлении запроса создайте новую парольную фразу.
  • -f: Используйте команду -f, чтобы направить ssh-keygen к определенному местоположению файла.
  • -C: команда -C добавляет комментарий к вашему ключу, что является полезным методом маркировки.

Кроме того, команда ls выведет список всех ключей SSH, хранящихся в каталоге по умолчанию:

Чтобы удалить локальный ключ SSH, вы можете использовать команду rm в терминале, например:

Наконец, чтобы получить доступ к полному списку команд, следующий ввод отобразит все доступные параметры вместе с дополнительной информацией:

macOS упрощает генерацию ключей SSH

Создать ключ SSH в macOS очень просто. Терминал и инструмент ssh-keygen могут выполнять все необходимые функции для разработки, создания и распространения ваших учетных данных для доступа, поэтому нет необходимости в дополнительном программном обеспечении. Просто введите правильные команды, а ssh-keygen сделает все остальное.

Обычно используются алгоритмы RSA, ECDSA и Ed25519, и каждый тип имеет свои собственные спецификации и используемые длины ключей. Во время создания вы можете указать эти данные и ввести другие инструкции с помощью правильных команд. После этого вы можете продолжать использовать Терминал для копирования, изменения и удаления сохраненных ключей.

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

При настройке удаленного сервера Linux вам необходимо выбрать способ безопасного подключения к нему. Хотя пароли являются одним из способов проверки личности пользователя, пароли имеют множество уязвимостей и могут быть взломаны методом грубой силы. Ключи Secure Shell, более известные как SSH-ключи, часто используются вместо паролей, поскольку они обеспечивают более безопасный способ подключения к удаленным серверам Linux. Являясь частью криптографического сетевого протокола Secure Shell, ключи SSH также позволяют пользователям безопасно выполнять сетевые службы в незащищенной сети, например отправлять текстовые команды на удаленный сервер или настраивать его службы.

В этом учебном пособии вы узнаете, как создать ключи SSH с помощью OpenSSH, набора инструментов SSH с открытым исходным кодом, в macOS и Linux, а также в Windows с помощью подсистемы Windows для Linux. Он написан для аудитории, которая только начинает работать с командной строкой, и содержит рекомендации по доступу к терминалу на персональном компьютере. После прохождения этого учебного курса у вас будут ключи SSH, которые можно использовать для безопасной настройки сервера в учебном пособии «Как настроить сервер Ubuntu 20.04 в дроплете DigitalOcean», которое является частью курса «Введение в облачную программу».

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

Предпосылки

Для выполнения этого руководства вам потребуется:

  • Локальный компьютер под управлением одной из следующих операционных систем: macOS, Linux или Windows с установленной подсистемой Windows для Linux. Если вы используете Windows, вы можете найти инструкции по загрузке или обновлению подсистемы Windows для Linux на странице документации Microsoft. Обратите внимание, что хотя OpenSSH должен работать с рядом дистрибутивов Linux, это руководство было протестировано с использованием Ubuntu 20.04.

Примечание. Если вам нужны инструкции по созданию ключей SSH на компьютере с Windows, на котором не установлена ​​подсистема Windows для Linux, см. нашу документацию по продукту Как создать ключи SSH с помощью PuTTY в Windows.

  • Некоторое знакомство с работой с терминалом и командной строкой. Если вам нужно ознакомиться с работой с терминалами и командной строкой, вы можете посетить наше руководство A Linux Command Line Prime.

Шаг 1. Понимание ключей SSH

Ключи SSH представляют собой две длинные строки символов, которые можно использовать для аутентификации личности пользователя, запрашивающего доступ к удаленному серверу. Эти ключи генерируются пользователем на локальном компьютере с помощью утилиты SSH. Один ключ является закрытым и хранится на локальном компьютере пользователя. Другой ключ является общедоступным и используется совместно с удаленным сервером или любым другим объектом, с которым пользователь хочет безопасно общаться.

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

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

Шаг 2. Открытие терминала на вашем компьютере

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

На компьютерах с macOS приложение «Терминал» обычно находится в папке «Утилиты» внутри папки «Приложения». Вы также можете найти его, выполнив поиск по слову «терминал» в поиске Spotlight.

Если вы работаете на компьютере с Linux, терминальное приложение вашего дистрибутива по умолчанию также обычно находится в папке «Утилиты» внутри папки «Приложения». Вы также можете найти его, выполнив поиск по слову «терминал» с помощью функции поиска на рабочем столе.

Если вы работаете на компьютере с Windows, на котором запущена подсистема Windows для Linux, терминал Linux должен открыться сразу после установки. Вы также можете найти его, выполнив поиск «Ubuntu» с помощью функции поиска на рабочем столе.

После того как вы нашли терминальное приложение вашей системы, откройте новое окно терминала. Ваш терминал должен отображать ваше имя пользователя, знак доллара ( $ ) и курсор. Здесь вы начнете вводить команды, чтобы сообщить терминалу, что делать.

На следующем шаге вы введете текстовую команду для создания пары ключей SSH.

Шаг 3 — Генерация ключей с помощью OpenSSH

В вашей операционной системе macOS или Linux уже должен быть установлен стандартный набор инструментов OpenSSH. Этот набор инструментов включает утилиту ssh-keygen , которую вы будете использовать для создания пары ключей SSH.

Введите в терминал следующую команду:

Затем вам будет предложено выбрать место для ключей. По умолчанию ключи хранятся в каталоге ~/.ssh с именами файлов id_rsa для закрытого ключа и id_rsa.pub для открытого ключа. Использование местоположений по умолчанию позволяет вашему SSH-клиенту автоматически находить ваши SSH-ключи при аутентификации, поэтому мы рекомендуем принять эти параметры по умолчанию. Для этого нажмите ENTER :

[предупреждение] Предупреждение. Если вы ранее создали пару ключей, вам будет предложено подтвердить, что вы действительно хотите перезаписать существующий ключ:

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

Если вы уверены, что хотите перезаписать существующий ключ на диске, вы можете сделать это, нажав Y, а затем ENTER .

Если вы выберете расположение по умолчанию, ваш открытый ключ будет расположен в /home/sammy /.ssh/id_rsa.pub, а ваш закрытый ключ будет расположен в /home/sammy /.ssh/id_rsa. Обратите внимание, что в вашем пути к файлу sammy будет заменено вашим именем пользователя.

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

Если вы вводите кодовую фразу, вам придется вводить ее каждый раз, когда вы используете этот ключ (если только вы не используете агентское программное обеспечение SSH, в котором хранится расшифрованный ключ). Мы рекомендуем использовать кодовую фразу, но вы можете просто нажать ENTER, чтобы обойти это приглашение:

После этого последнего запроса ваша система сгенерирует пару ключей SSH:

Теперь у вас есть открытый и закрытый ключи, которые вы можете использовать для аутентификации.

Заключение

Поздравляем, вы сгенерировали пару ключей SSH. Эти ключи можно использовать для безопасного подключения к удаленному серверу, и они необходимы для руководства «Как настроить сервер Ubuntu 20.04 в дроплете DigitalOcean», которое следует за этим руководством в разделе «Введение в учебную программу облачных вычислений».

Для более подробного ознакомления с работой с SSH ознакомьтесь с нашим руководством Основы SSH: работа с серверами, клиентами и ключами SSH.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Вы создаете ключ SSH через macOS с помощью приложения «Терминал». После того как вы загрузите действительный открытый ключ SSH, Triton Compute Service использует SmartLogin для копирования открытого ключа на любой новый SmartMachine, который вы предоставляете.

Компания Joyent рекомендует ключи RSA, поскольку программы CLI node-manta работают с ключами RSA как локально, так и с агентом ssh. Ключи DSA будут работать, только если закрытый ключ находится в той же системе, что и интерфейс командной строки, и не защищен паролем.

О терминале

Терминал — это эмулятор терминала, предоставляющий текстовый интерфейс командной строки для оболочки Unix в macOS.

Чтобы открыть терминал macOS, выполните следующие действия:

  1. В Finder выберите «Утилиты» в папке «Приложения».
  2. Найдите «Терминал» в списке «Утилиты».
  3. Открыть терминал.

Откроется окно терминала с приглашением командной строки, отображающим имя вашего компьютера и ваше имя пользователя.

Создание ключа SSH

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

Чтобы сгенерировать ключи SSH в macOS, выполните следующие действия:

Введите следующую команду в окне терминала.

Это запускает процесс генерации ключа. При выполнении этой команды утилита ssh-keygen предложит указать, где хранить ключ.

Нажмите клавишу ENTER, чтобы принять расположение по умолчанию. Утилита ssh-keygen запрашивает парольную фразу.

Чтобы продолжить, вам потребуется ввести кодовую фразу еще раз.

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

Ваш закрытый ключ сохраняется в файле id_rsa в каталоге .ssh и используется для проверки принадлежности открытого ключа к той же учетной записи Triton Compute Service.

Никогда никому не сообщайте свой закрытый ключ!

Ваш открытый ключ сохраняется в файле id_rsa.pub и является ключом, который вы загружаете в свою учетную запись Triton Compute Service. Вы можете сохранить этот ключ в буфер обмена, запустив это:

Импорт вашего SSH-ключа

Теперь вы должны импортировать скопированный ключ SSH на портал.

  1. После того как вы скопируете ключ SSH в буфер обмена, вернитесь на страницу своей учетной записи.
  2. Выберите «Импорт открытого ключа» и вставьте свой SSH-ключ в поле «Открытый ключ».
  3. В поле "Имя ключа" укажите имя ключа. Примечание. Хотя указывать имя ключа необязательно, это рекомендуется для упрощения управления несколькими ключами SSH.
  4. Добавьте ключ. Теперь он появится в вашей таблице ключей в SSH.

Устранение неполадок

Вы можете увидеть приглашение ввести пароль следующим образом:

Это потому, что:

  • Вы ввели неверный пароль.
  • Закрытый ключ на вашем Macintosh ( id_rsa ) не соответствует открытому ключу, хранящемуся в вашей учетной записи Triton Compute Service.
  • Открытый ключ был неправильно введен в вашу учетную запись Triton.

Каковы мои дальнейшие действия?

Чтобы использовать Терминал для создания экземпляров, настройте triton и CloudAPI, а также инструмент командной строки triton-docker.

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

О создании ключа SSH

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

Если вы хотите использовать аппаратный ключ безопасности для аутентификации на GitHub, вам необходимо сгенерировать новый ключ SSH для вашего аппаратного ключа безопасности. Вы должны подключить свой аппаратный ключ безопасности к компьютеру при аутентификации с помощью пары ключей. Дополнительные сведения см. в примечаниях к выпуску OpenSSH 8.2.

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

Создание нового ключа SSH

Открыть Терминал Терминал Git Bash.

Вставьте приведенный ниже текст, заменив его своим адресом электронной почты GitHub.

Примечание. Если вы используете устаревшую систему, которая не поддерживает алгоритм Ed25519, используйте:

При этом создается новый ключ SSH с использованием предоставленного адреса электронной почты в качестве метки.

Когда вам будет предложено "Введите файл для сохранения ключа", нажмите Enter. Это принимает расположение файла по умолчанию.

По запросу введите безопасную парольную фразу. Дополнительную информацию см. в разделе «Работа с парольными фразами SSH».

Добавление ключа SSH в ssh-agent

Прежде чем добавлять новый ключ SSH в ssh-agent для управления вашими ключами, вы должны проверить наличие существующих ключей SSH и сгенерировать новый ключ SSH. При добавлении ключа SSH в агент используйте команду ssh-add по умолчанию для macOS, а не приложение, установленное macports, homebrew или каким-либо другим внешним источником.

Запустите ssh-агент в фоновом режиме.

В зависимости от вашей среды вам может понадобиться использовать другую команду. Например, вам может понадобиться использовать root-доступ, запустив sudo -s -H перед запуском ssh-agent, или вам может понадобиться использовать exec ssh-agent bash или exec ssh-agent zsh для запуска ssh-agent.

Если вы используете macOS Sierra 10.12.2 или более позднюю версию, вам потребуется изменить файл ~/.ssh/config, чтобы ключи автоматически загружались в ssh-agent и сохранялись пароли в цепочке ключей.

Сначала проверьте, существует ли ваш файл ~/.ssh/config в папке по умолчанию.

Если файл не существует, создайте его.

Откройте файл ~/.ssh/config, затем внесите в него следующие строки. Если ваш файл ключа SSH имеет другое имя или путь, чем пример кода, измените имя файла или путь, чтобы они соответствовали вашим текущим настройкам.

Примечание. Если вы решили не добавлять кодовую фразу к своему ключу, вам следует опустить строку UseKeychain.

Примечание. Если вы видите такую ​​ошибку

добавьте дополнительную строку конфигурации в раздел Host *:

Добавьте свой закрытый ключ SSH в ssh-agent и сохраните парольную фразу в цепочке ключей.Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

Примечание. Параметр -K — это стандартная версия Apple ssh-add , которая сохраняет парольную фразу в вашей цепочке ключей, когда вы добавляете ключ SSH в ssh-agent. Если вы решили не добавлять парольную фразу к своему ключу, запустите команду без параметра -K.

Если у вас не установлена ​​стандартная версия Apple, вы можете получить сообщение об ошибке. Дополнительные сведения об устранении этой ошибки см. в разделе «Ошибка: ssh-add: недопустимая опция — K».

В MacOS Monterey (12.0) флаги -K и -A устарели и заменены флагами --apple-use-keychain и --apple-load-keychain соответственно.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

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

Убедитесь, что агент ssh запущен. Вы можете воспользоваться инструкциями «Автозапуск ssh-agent» в разделе «Работа с парольными фразами SSH» или запустить его вручную:

Добавьте свой закрытый ключ SSH в ssh-agent. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

Запустите ssh-агент в фоновом режиме.

В зависимости от вашей среды вам может понадобиться использовать другую команду. Например, вам может понадобиться использовать root-доступ, запустив sudo -s -H перед запуском ssh-agent, или вам может понадобиться использовать exec ssh-agent bash или exec ssh-agent zsh для запуска ssh-agent.

Добавьте свой закрытый ключ SSH в ssh-agent. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

Создание нового ключа SSH для аппаратного ключа безопасности

Если вы используете macOS или Linux, вам может потребоваться обновить клиент SSH или установить новый клиент SSH перед созданием нового ключа SSH. Дополнительные сведения см. в разделе «Ошибка: неизвестный тип ключа».

Вставьте аппаратный ключ безопасности в свой компьютер.

Открыть Терминал Терминал Git Bash.

Вставьте приведенный ниже текст, заменив адрес электронной почты своей учетной записи на GitHub.

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

При появлении запроса нажмите кнопку на аппаратном ключе безопасности.

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

Когда вам будет предложено ввести кодовую фразу, нажмите Enter.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

  • "О SSH"
  • "Работа с парольными фразами SSH"
  • "Авторизация ключа SSH для использования с единым входом SAML" в документации GitHub Enterprise Cloud

Помогите нам сделать эти документы лучше!

Все документы GitHub имеют открытый исходный код. Видите что-то неправильное или непонятное? Отправьте запрос на вытягивание.

Читайте также: