Как скопировать ssh-ключ linux

Обновлено: 03.07.2024

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

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

К счастью, вы можете обойти этот шаг, включив вход по SSH без пароля. Мы покажем вам, как использовать для этого команду ssh-copy-id.

Как использовать SSH без пароля

Чтобы включить вход без пароля через SSH, все, что вам нужно сделать, это скопировать свой открытый ключ на удаленный сервер. Ключ SSH на самом деле представляет собой пару двух ключей: один открытый и один закрытый. Удаленный SSH-сервер будет использовать их для аутентификации вашей личности, прежде чем вы сможете подключиться.

Вы можете легко создать пары ключей SSH с помощью команды ssh-keygen. Как только ssh сгенерирует ключи, скопируйте ваш открытый ключ на удаленный сервер. Это гарантирует, что вам не нужно будет вводить пароль SSH при последующих входах в систему.

Создайте открытый и закрытый ключи SSH

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

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

Добавить открытый SSH-ключ на сервер

Теперь, когда вы создали ключи SSH, вам нужно добавить открытый ключ на удаленный сервер. Вы можете сделать это с помощью команды ssh-copy-id:

Введите указанную выше команду в своем терминале и замените user и remote-host своим именем пользователя и именем хоста/IP-адресом удаленного компьютера.

Подключиться к SSH-серверу без пароля

Все готово для входа без пароля после добавления открытого ключа на сервер через ssh-copy-id. Вы можете проверить это самостоятельно, используя следующую команду:

Избавьтесь от паролей с помощью ssh-copy-id

Используя ssh-copy-id, вы можете загрузить открытый ключ на удаленный сервер и подключиться без пароля. Однако не следует включать аутентификацию без пароля для всех систем. Вместо этого используйте его для доступа к системам, которые вы часто используете. Если вы новичок в этом, попробуйте узнать, как настроить SSH и настроить параметры.


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

Подпишитесь на нашу рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Я создал ключ SSH, чтобы добавить его на Github. Я пытаюсь скопировать содержимое /.ssh/id_rsa.pub в буфер обмена, но получаю ошибки как в PuTTY, так и в консоли браузера. Я попытался установить xclip, но это не сработало. Какие-либо предложения? В настоящее время я запускаю сервер Ubuntu 12.04. Надеюсь, это будет мой последний вопрос по SSH!

С помощью этой команды в терминале вы можете скопировать ключ ssh в буфер обмена: pbcopy

Вы можете ввести !ref в этой текстовой области, чтобы быстро найти наш полный набор руководств, документации и предложений на рынке и вставить ссылку!

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

Я думаю, что самый простой способ скопировать ключи SSH — открыть файл общедоступного ключа SSH (как вы это сделали) и вручную скопировать и вставить ключ. Это можно сделать в PuTTy, выделив текст левой кнопкой мыши. После того, как он выбран, он уже должен быть скопирован в буфер обмена.

Вы не можете скопировать текст из средства просмотра консоли.

Сообщите мне, если у вас по-прежнему возникнут проблемы.

Я очень ценю помощь! Спасибо за ответ. Я могу скопировать ключ SSH в буфер обмена с помощью PuTTY, но GitHub не любит этот ключ. У меня такое ощущение, что я не копирую весь SSH-ключ. Двойной щелчок левой кнопкой мыши выделит/скопирует строку, но только то, что вы видите в строке, а не всю строку. В этом проблема, потому что, даже если я растяну окно Putty настолько широко, насколько это возможно, кажется, что я все равно не скопирую весь SSH-ключ.

Есть ли способ скопировать всю строку в файле, даже если моя консоль не отображает ее целиком?

Я разобрался. Вместо nano я должен был использовать текстовый редактор vi. Дох! Такое простое решение. Еще раз спасибо за вашу помощь!

Всем, кто столкнулся с этой проблемой, следуйте этим инструкциям:

<р>1. компакт-диск ~/.ssh
2. sudo vi id_rsa.pub
3. Нажмите и удерживайте левую кнопку мыши, чтобы выделить весь ключ SSH, но не выделяйте пробелы после вашего адреса электронной почты в конце ключа SSH.
4.Вставьте в Github :)

Спасибо за обновление и пошаговое руководство! Я рад, что у вас все получилось :)

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

Инструмент ssh-copy-id является частью OpenSSH.

Содержание

Настройка аутентификации с открытым ключом

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

Создать SSH-ключ

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

Создание пары ключей (открытый ключ и закрытый ключ) занимает всего минуту. Файлы ключей обычно хранятся в каталоге ~/.ssh.

Скопируйте ключ на сервер

После создания ключа SSH можно использовать команду ssh-copy-id для его установки в качестве авторизованного ключа на сервере. После авторизации ключа для SSH он предоставляет доступ к серверу без пароля.

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

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

На сервер копируется только открытый ключ. Закрытый ключ никогда не следует копировать на другой компьютер.

Протестировать новый ключ

После того как ключ был скопирован, лучше всего протестировать его:

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

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

Существует ряд причин, по которым тест может не пройти:

Возможно, сервер не настроен для проверки подлинности с открытым ключом. Убедитесь, что /etc/ssh/sshd_config на сервере содержит PubkeyAuthentication yes. Не забудьте перезапустить процесс sshd на сервере.

Если вы пытаетесь войти в систему как пользователь root , возможно, сервер не настроен для разрешения входа в систему с правами root. Убедитесь, что /etc/sshd_config включает в себя PermitRootLogin yes, PermitRootLogin запрещающий пароль или без пароля. Если установлено значение force-commands-only , ключ необходимо настроить вручную для использования принудительной команды (см. параметр command= в ~/.ssh/authorized_keys .

Убедитесь, что клиент разрешает аутентификацию с открытым ключом. Убедитесь, что /etc/ssh/config включает PubkeyAuthentication yes .

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

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

Как работает ssh-copy-id

ssh-copy-id использует протокол SSH для подключения к целевому хосту и загрузки ключа пользователя SSH. Команда редактирует файл author_keys на сервере. Он создает каталог .ssh, если он не существует. Он создает файл авторизованных ключей, если он не существует. По сути, ключ ssh скопирован на сервер.

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

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

Некоторые рекомендации по работе с ключами SSH

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

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

Рекомендуется, чтобы ключи, используемые для единого входа, имели кодовую фразу, чтобы предотвратить использование ключа в случае его кражи или непреднамеренной утечки. Можно использовать программы ssh-agent и ssh-add, чтобы не вводить кодовую фразу каждый раз при использовании ключа.

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

По возможности добавьте ограничение на команду

Инструмент copy-id не добавляет к клавишам ограничения команд автоматически. Настоятельно рекомендуется использовать ограничения команд, когда ключ используется для автоматизации операций, таких как запуск отчета для выборки некоторых файлов. Ограничение команды — это, по сути, параметр команды, добавленный в начало строки в файле author_keys сервера.

Управление ключами SSH

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

Инструмент copy-id может быть опасен. Он может легко случайно установить несколько ключей или непреднамеренные ключи как авторизованные. Логика выбора ключа для установки запутана. Дополнительные авторизованные ключи обеспечивают постоянный доступ. Позже их можно использовать для распространения атак между хостами, и чем больше ключей, тем выше риск. Это также нарушает все нормативные требования .

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

Параметры командной строки

В примере ниже представлен синтаксис командной строки ssh-copy-id:

Параметры имеют следующее значение:

-f Не проверять, настроен ли ключ уже как авторизованный на сервере. Просто добавьте это. Это может привести к появлению нескольких копий ключа в файлах author_keys.

-i Указывает копируемый файл идентификации (по умолчанию ~/.ssh/id_rsa). Если этот параметр не указан, добавляются все ключи, перечисленные с помощью ssh-add -L. Примечание: это может быть несколько ключей, и добавление дополнительных авторизованных ключей может произойти случайно! Если ssh-add -L не возвращает ключей, будет использоваться последний измененный ключ, соответствующий ~/.ssh/id*.pub , за исключением тех, которые соответствуют ~/.ssh/*-cert.pub .

-n Просто напечатать ключ(и), которые будут установлены, без их фактической установки.

-o ssh_option Передать -o ssh_option клиенту SSH при установлении соединения. Это можно использовать для переопределения параметров конфигурации для клиента. См. параметры командной строки ssh и возможные параметры конфигурации в ssh_config .

-p порт Подключиться к указанному порту SSH на сервере вместо порта 22 по умолчанию.

-h или -? Распечатать сводку об использовании.

Ssh-copy-id на Mac

Хотя MacOS включает SSH, он не включает ssh-copy-id из порта. Однако, согласно некоторым источникам, MacOS 10.12.4 включает его, и предположительно все новые версии также включают его.

Вы можете проверить, есть ли он на вашем Mac, открыв окно терминала (Finder / Go / Utilities / Terminal) и введя ssh-copy-id .

Если в вашей системе его нет, есть много способов установить версию ssh-copy-id для Mac.

Установка с помощью Homebrew

Чтобы установить его с помощью Homebrew, используйте следующую команду. Вам необходимо установить команду brew.

Установка с MacPorts

Следующая команда установит его с помощью MacPorts. Вам необходимо установить команду порта.

Установка с помощью Curl

Следующую команду можно использовать для прямой установки версии для Mac. Обратите внимание, что, как правило, мы не рекомендуем передавать какие-либо команды из сети в оболочку, как это делается. Используйте этот метод, только если вы полностью доверяете источнику. Преимущество этого метода в том, что для него не требуется никакого специального программного обеспечения — программа curl предустановлена.

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

Если вы не знаете, как просмотреть свои сертификаты SSH, Джек Валлен проведет вас по шагам в Linux, macOS и Windows.

Обязательно к прочтению статьи о безопасности

В некоторых случаях вам нужно будет просмотреть свои сертификаты SSH в Linux. Почему? Скажем, например, вам нужно добавить сертификат для аутентификации в GitHub (или любом другом онлайн-сервисе, который требует SSH-аутентификацию). Вы знаете, что создали эти SSH-сертификаты, но как их просмотреть?

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

Никогда не бойся, поэтому я здесь.

Я хочу показать вам, как легко просматривать эти SSH-ключи, чтобы вы могли использовать их для сторонних сервисов.

Что вам понадобится

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

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

Как просмотреть открытый ключ SSH в Linux

Есть два простых способа просмотреть открытый ключ SSH в Linux. Первый метод немного сложен, потому что он использует обе команды ssh-agent и ssh-add. Это, вероятно, излишне для того, что вам нужно, но это хороший способ просмотреть ключ, требуя при этом пароль вашей пары ключей SSH. Команда:

ssh-agent sh -c 'ssh-add; ssh-добавить -L'

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

Если вы не хотите запоминать еще одну команду, вы можете просто использовать команду cat следующим образом:

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

Как просмотреть открытый ключ SSH в macOS

Просмотр ваших ключей в macOS можно выполнить так же, как и в Linux. Откройте окно терминала и введите команду:

Где USERNAME — ваше имя пользователя macOS.

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

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

кошка ~/.ssh/id_rsa.pub | копировать

Скопировав ключ в буфер обмена, вы можете вставить его в любое место.

Как просмотреть открытый ключ SSH в Windows

В Windows вы будете использовать команду type для просмотра открытого ключа SSH следующим образом:

Где USERNAME – это имя вашего пользователя.

Приведенная выше команда отобразит ваш открытый ключ SSH. Затем вы можете использовать сочетание клавиш Ctrl+c, чтобы скопировать содержимое файла.

Вы также можете сделать что-то похожее на то, что мы делали в macOS (скопировав открытый ключ SSH непосредственно в буфер обмена), используя команды type и clip следующим образом:

введите C:UsersUSERNAME.sshid_rsa.pub | клип

Где USERNAME — ваше имя пользователя.

Теперь вы можете вставить этот ключ в любое место.

Как просмотреть свой закрытый ключ

Возможно, вам никогда не придется просматривать свой закрытый ключ. В конце концов, это секрет соуса, который никто не выставляет напоказ. Но, если вам нужно просмотреть этот ключ, вы можете выполнить те же действия, что и выше, но удалить .pub из имени файла (в любом случае). Помните, что id_rsa — это закрытый ключ, а id_rsa.pub — открытый ключ.

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

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


< /p>

Информационный бюллетень Cybersecurity Insider

Укрепите защиту ИТ-безопасности своей организации, следя за последними новостями, решениями и рекомендациями в области кибербезопасности.

Доставка по вторникам и четвергам


< /p>


Изображение: iStock/Stock Depot

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