Ssh copy id для windows

Простое копирование ssh ключей между серверами c использованием утилиты ssh-copy-id

Традиционно администраторы решают задачу копирования ssh ключей между серверами путем копирования содержимого файла /root/.ssh/id_rsa.pub с сервера server1 на server2 в файл /root/.ssh/authorized_keys. Копируют обычно из одного терминала в другой, но есть более изящное решение — это использование утилиты ssh-copy-id, которая позволяет скопировать содержимое id_rsa.pub сервера источник (в нашем случае server1) на сервер приемник (server2) в нужный нам authorized_keys не открывая консоль сервера приемника (server2).

Исходные данные: 2 сервера с Debian 8 (server1 и server2).
Задача: Организовать вход по ssh ключу с сервера server1 на server2 с правами root.

Итак сделаем все по порядку:

1. Генерируем публичный открытый и закрытый ключи, под пользователем root на server1:

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

Мы создаем ключи впервые, поэтому предупреждения не будет, будет выведена примерно такая информация:

Вы можете защитить приватный ключ паролем и тогда чтобы попасть на сервер server2 по ssh ключу нужно будет ввести этот пароль, я настоятельно рекомендую для доступа с уровнем root ввести пароль на приватный ключ.

Ключи сгенерированы, мы можем проверить под пользователем root выполнив команду

В ответ увидим примерно:

Теперь нужно передать публичный ключ id_rsa.pub пользователя root на server2, для этого на server1 выполняем:

Вводим пароль root от сервера server2 и ключ будет передан и записан в нужный файл authorized_keys

Важное уточнение: Чтобы передать публичный ключ на server2 под root нужно чтобы пользователю root было разрешен вход по ssh на server2, обычно при базовой установке Debian/Ubuntu вход под root по ssh разрешен, это настраивается директивой PermitRootLogin в файле /etc/ssh/sshd_config

PermitRootLogin yes — Вход под root по ssh разрешен.

PermitRootLogin no — Вход под root по ssh запрещен.

PermitRootLogin without-password — Вход под root по ssh разрешен только по ssh ключам.

PermitRootLogin forced-commands-only — Вход под root по ssh разрешен только по ssh ключам и только для выполнения заранее определенной команды, сама команда прописывается в /root/.ssh/authorized_keys в формате:

После изменения PermitRootLogin не забудьте перезапустить службу sshd командой:

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

Есть ли эквивалент для ssh-copy-id для Windows?

Есть ли какой-либо эквивалент или порт ssh-copy-id для Windows? То есть существует ли простой способ переноса ключей SSH с локального компьютера на удаленный сервер под Windows?

На случай, если это поможет, я уже использую Pageant и Kitty (альтернативу Putty).

ssh-copy-id — это довольно простой скрипт, который должно быть довольно легко реплицироваться под окнами.

Если вы игнорируете всю обработку параметров, обработку ошибок и т. Д., Это две команды из ssh-copy-id, которые фактически выполняют работу большую часть времени.

При использовании инструментов замазки подобная команда должна быть эквивалентной (не проверенной).

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

Эти ответы не помогли мне. Мне действительно не нужны были какие-то сумасшедшие сценарии. Я создал открытый ключ на своем клиентском компьютере в git bash и пытался скопировать его на VPS.

После создания вашего открытого ключа ключ должен быть сохранен как «(в какой бы папке вы не начали) /. Ssh / id_rsa.pub»

Так что используйте эту команду:
cat

/.ssh/id_rsa.pub | ssh user@123.45.67.89 «cat >>

/.ssh/authorized_keys» где user ваше имя пользователя (иногда «root» или что-то еще, что вы, возможно, настроили), и замените 123.45.67.89 его IP-адресом вашего компьютера / хоста / VPS.

Если каталог .ssh еще не создан на хост-компьютере, используйте этот небольшой вариант:
cat

Читайте также:  Потери udp пакетов linux

/.ssh/id_rsa.pub | ssh user@123.45.56.78 «mkdir

ssh-copy-id делает несколько вещей ( подробнее см. справочную страницу ), но самое важное, что он делает, — добавляет содержимое вашего локального файла открытого ключа в удаленный файл с именем author_keys.

Вы можете сделать это самостоятельно, открыв файл ключа в текстовом редакторе и вставив содержимое в терминал Kitty.
echo ‘long_line_with_contents_of_public_key_file’ >> .ssh/authorized_keys

В качестве альтернативы вы можете загрузить файл с помощью WinSCP (который использует sftp или scp в качестве запасного варианта) и сделать что-то похожее на мое предыдущее предложение, без уродливого копирования / вставки.
cat id_rsa.pub >> .ssh/authorized_keys
где id_rsa.pub — это имя загруженного вами открытого ключа.

Вдохновленный ответом zoredache, я создал несколько сценариев для Windows. Однако все они зависят от мнений. Пожалуйста, посмотрите здесь

У меня также есть скрипт winscp, который можно использовать согласно другому ответу. 🙂 Выдержка из файла readme:

Попытка методов до сих пор:

  • DOS (.cmd) — успех
    • usage: .\Scriptname test@example.com password [identity file]
  • VBS (.vbs) — успех
    • usage: .\Scriptname /i:idtest.pub user@example.com /p:password
  • Powershell (.ps1) — успех
    • usage: .\Scriptname -i idtest.pub user@example.com password
  • mremoteNG (внешнее приложение) — Успех
    • Выберите Host, щелкните правой кнопкой мыши, внешние инструменты, выберите Scriptname
  • Скрипт WinSCP (.bat) — успех
    • # «WinSCP.com» /script=».\Scriptname» /parameter «user[:password]@example.com» «id_rsa.pub» [/log=».\copyssh.log]»

В Windows 7 есть ssh.exe

Вот что сработало для меня:

1. создать личность (на окнах)

Это создало файл идентификации в домашнем каталоге. Я изменил имя открытого ключа на «id_rsa»

2. скопируйте файл в целевую систему linux, используя ssh Credits для https://serverfault.com/users/984/zoredache для его ответа

Примечание: по какой-то причине у меня не работает трубопровод:

3. Исправьте файл в linux Файл id_rsa.pub в windows является многострочным, в котором linux ожидает его в одной строке, поэтому мы должны немного его исправить. Войдите в Linux и откройте файл:

4. проверить это

Это должно перечислить содержимое / tmp без запроса пароля.

ssh-copy-id для Windows

Авторизация по RSA-ключам уже давно стала стандартом — стандартом хорошим, удобным, логичным и правильным. Это надежно и безопасно. Однако, в то время пока юниксы уверенно идут по пути повсеместной интеграции SSH-управления, пока появляется множество утилит управления и наблюдения за инфраструктурой средствами SSH, Windows стоит в сторонке от этого прогресса. Здесь напряженка с клиентами, тяжело найти достойную консоль и терминал, есть вопросы к агентам — но всё это тема для отдельной статьи. Здесь же речь пойдет о том, как упростить первый этап в настройке нового сервера — заливку своего RSA-ключа.

Пользователи *nix-систем должны знать о существовании команды ssh-copy-id: это просто bash-скрипт следующего содержания:

Занимается этот скрипт тем, что заливает пользовательский публичный ключ (по-умолчанию

/.ssh/id_rsa.pub на указанный сервер для указанного пользователя. Да, пара строк кода, но они упрощают жизнь. Что же делать, если под рукой только Windows? Как обычно, писать свой костыль.

Я не первый кто этим озадачился. Здесь, например, предлагается однострочный батник, делающий всё то же самое:

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

Я же пошёл немного дальше и написал реализацию на PowerShell. Главное отличие: при запуске мы получаем диалоговое окно для выбора файла, содержащего публичный ключ, после чего следует небольшая проверка, что файл действительно подходит по формату и может быть использован для авторизации. Далее — всё то же самое: авторизуемся на сервере и копируем содержимое файла.

Как использовать команду ssh-copy-id

Главное меню » Linux » Как использовать команду ssh-copy-id

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

Как установить команду ssh-copy-id

Инструмент ssh-copy-id, часть пакета OpenSSH, доступен во всех основных репозиториях дистрибутива Linux, и вы можете использовать свой менеджер пакетов для установки этой команды.

Чтобы установить инструмент ssh-copy-id в Debian, используйте следующую команду:

После установки OpenSSH вы можете использовать инструмент ssh-copy-id в командной строке.

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

Читайте также:  Windows phone как найти загрузки

Аутентификация открытого ключа SSH

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

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

Чтобы использовать SSH-ключ, мы начнем с его генерации.

Как сгенерировать SSH-ключ

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

/.ssh, как показано ниже.

Как скопировать SSH-ключ с помощью SSH-copy-id

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

Мы будем использовать команду ssh-copy-id, чтобы упростить этот процесс. Просто вызовите команду ssh-copy-id и передайте путь к открытому ключу следующим образом:

После ввода вышеуказанной команды вы должны получить следующий вывод:

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

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

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

Параметры команды SSH-copy-id

Вы можете изменить работу команды ssh-copy-id, используя предоставленные аргументы. Чтобы просмотреть страницу справки, используйте команду ssh-copy-id -h или команду ssh-copy-id без аргументов.

    аргумент -i: этот аргумент указывает файл идентификации, который будет использоваться, т. е. копироваться на указанный удаленный хост. Если вы не укажете аргумент -i, будут добавлены все файлы в каталоге

/.ssh с совпадающим шаблоном * .pub.

  • флаг -f: этот флаг включает принудительный режим, который не проверяет, настроен ли ключ предварительно в authorized_keys на сервере. Флаг -f добавляет ключ, что часто приводит к установке нескольких копий одного и того же ключа на сервере.
  • флаг -p: этот флаг указывает порт SSH для подключения к удаленному хосту. Этот флаг используется, когда порт SSH по умолчанию не используется.
  • флаг -n: этот флаг выполняет пробный запуск, который распечатывает ключи, предназначенные для установки, без их установки на удаленном хосте.
  • Заключение

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

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Авторизация по ключу SSH

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

    В SSH существует несколько способов авторизации. Вы можете каждый раз вводить пароль пользователя или использовать более безопасный и надежный способ — ключи SSH. Что самое интересное, он более удобен для применения, вам даже не нужно будет вводить пароль. В этой статье мы рассмотрим как настраивается авторизация по ключу SSH.

    Как работают ключи SSH?

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

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

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

    Читайте также:  Boot is missing press ctrl alt del to restart windows

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

    Как создать ключи SSH?

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

    И так, генерация ключей ssh выполняется командой:

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

    /.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.

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

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

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

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

    Загрузка ключа на сервер

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

    Самый простой способ скопировать ключ на удаленный сервер — это использовать утилиту ssh-copy-id. Она тоже входит в пакет программ OpenSSH. Но для работы этого метода вам нужно иметь пароль доступа к серверу по SSH. Синтаксис команды:

    При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id.rsa.pub для загрузки его на сервер в файл

    /.ssh/authorized_keys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.

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

    /.ssh, а затем поместим наш ключ в файл authorized_keys с помощью символа >>, это позволит не перезаписывать существующие ключи:

    /.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p

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

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

    Отключение проверки пароля

    Если пароль больше не будет использоваться, то для увеличения безопасности системы лучше его вовсе отключить. Но убедитесь, что ключ надежно сохранен и вы его не потеряете, потому что по паролю вы больше не войдете. Авторизуйтесь на сервере, затем откройте конфигурационный файл /etc/ssh/sshd_config и найдите там директиву PasswordAuthenticatin. Нужно установить ее значение в No:

    sudo vi /etc/ssh/sshd_config

    Теперь сохраните файл и перезапустите службу ssh:

    sudo service ssh restart

    Дальше будет возможно только подключение по ключу ssh, пароль не будет приниматься.

    Выводы

    В этой статье мы рассмотрели как выполняется авторизация по ключу ssh, настройка ключей ssh и добавить ssh ключ. Теперь вы можете войти на сервер без ввода пароля. Если у вас остались вопросы, спрашивайте в комментариях!

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