Сохранение ключа ssh

Я только что начал учебник Git, и я дошел до конца: я пытаюсь сгенерировать часть ключа rsa, и она терпит неудачу. Я сделал это, в Git bash:

ssh-keygen -t rsa -C "[email protected]"

И я получил следующее:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):
enter passphrase:
enter same passphrase again:
open /c/Users/Eva/.ssh/id_rsa failed: no such file or directory.
Saving the key failed:/c/Users/Eva/.ssh/id_rsa.

Я попытался сохранить в другой папке, и все прошло нормально. но теперь я выполняю команду ssh -T [email protected] и это дает мне ошибку permisson denied (publickey).

Ответ 1

Если вы предпочитаете использовать графический интерфейс для создания клавиш

  • Используйте Putty Gen для генерации ключа
  • Экспортировать ключ в качестве открытого ключа SSH.
  • Как упоминалось @VonC, создайте каталог .ssh, а затем вы можете оставить там закрытые и открытые ключи.
  • Или используйте программу GUI (например, Tortoise Git), чтобы использовать ключи SSH.

Для прохода по шлейфу для вышеуказанных шагов см. http://ask-leo.com/how_do_i_create_and_use_public_keys_with_ssh.html

Ответ 2

Если вы используете Windows, виноват путь по умолчанию в six-keygen в стиле Unix.

В строке 2 указано " Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa): Это полное имя файла в параграфах является значением по умолчанию, очевидно, что Windows не может получить доступ к такому файлу. Если вы c:\Users\Eva\.ssh\id_rsa эквивалент Windows (c:\Users\Eva\.ssh\id_rsa), он должен работать.

Перед запуском вам также необходимо создать папку. Вы можете сделать это, запустив mkdir c:\Users\Eva\.ssh или создав папку ".ssh". из проводника (обратите внимание на вторую точку в конце, которая будет удалена автоматически и необходима для создания папки с точкой в начале).

c:\Users\Administrator\.ssh>ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Administrator/.ssh/id_rsa): C:\Users\Administrator\.ssh\id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator\.ssh\id_rsa.
Your public key has been saved in C:\Users\Administrator\.ssh\id_rsa.pub.
The key fingerprint is:
... [email protected]
The key randomart image is:...'

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

Ответ 3

Похоже, что вы выполняете эту команду из сеанса DOS (см. этот поток), а это означает, что вам нужно создать каталог .ssh до указанной команды.

Или вы можете выполнить его из сеанса bash (часть дистрибутива msysgit), и он должен работать.

Ответ 4

У меня была такая же проблема. Я должен был предоставить полный путь, используя соглашения Windows. На этом шаге:

Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):

Введите следующее значение:

c:\users\eva\.ssh\id_rsa

Ответ 5

Вы должны сами создать папку .ssh для сохранения ssh-ключей.

Кстати, я использовал этот стиль пути: C:/Users/you/.ssh/id_rsa

Ответ 6

В Windows мне пришлось создать переменную среды HOME, указав сначала на мой профиль пользователя (C:\Users\<name>) или любой другой каталог, который вы предпочитаете.

Затем запустите новое окно командной строки, создайте каталог a .ssh в своем профиле пользователя или выберите команду с помощью команды mkdir ".ssh".

После этого я смог использовать ssh-keygen без каких-либо проблем с концами.

Ответ 7

Я боролся с той же проблемой какое-то время (используя Mac). Вот что я сделал, и он наконец-то работал:
(1) Убедитесь, что существует каталог .ssh:

#show all files including hidden
ls -a 

(2) Примите все значения по умолчанию, просто нажав enter в строке

Enter file in which to save the key (/Users/username/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

Вы должны получить сообщение:

Your identification has been saved in /Users/username/.ssh/id_rsa.
Your public key has been saved in /Users/username/.ssh/id_rsa.pub.
The key fingerprint is:
BZA156:HVhsjsdhfdkjfdfhdX+BundfOytLezXvbx831/s [email protected]
The key randomart image is:XXXXX

PS Если вы настраиваете git для рельсов, сделайте следующее (источник):

git config --global color.ui true
git config --global user.name "yourusername"
git config --global user.email "[email protected]"
ssh-keygen -t rsa -C "[email protected]" 

(затем принять все значения по умолчанию, нажав enter)

Ответ 8

Я использовал bash для окон, которые поставлялись с git. Проблема была в том, что я предположил, что тильда (~), которую я использовал для обозначения моего домашнего пути, будет расширяться должным образом. Он работает при использовании cd, но для исправления этой ошибки я должен был просто дать ему абсолютный путь.

Ответ 9

Ваш метод должен нормально работать на Mac, но в Windows необходимы два дополнительных шага.

  1. Создайте новую папку в нужном месте и назовите ее ".ssh". (обратите внимание на закрывающую точку - это исчезнет, но требуется для создания папки, начинающейся с ".")
  2. При появлении запроса используйте путь к файлу в формате C: /Users/NAME/.ssh/id_rsa (обратите внимание, что на .ssh нет закрывающей точки).

Сохранение ключа id_rsa в этом месте должно устранить ошибку разрешения.

Ответ 10

Я столкнулся с той же проблемой. Решение на окнах:

  1. откройте меню "Пуск" и введите cmd
  2. Право и выберите запуск от имени администратора
  3. Затем введите cd Users_YOURUSERNAME_\Замените "YOURUSERNAME" на имя своей учетной записи Windows.
  4. Тип: mkdir.ssh

Это создаст папку .ssh.

Ответ 11

Если у вас есть эта проблема в Linux, то вам может понадобиться сначала создать каталог:

mkdir /Users/Eva/.ssh/id_rsa