Сохранение ключа 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 необходимы два дополнительных шага.
- Создайте новую папку в нужном месте и назовите ее ".ssh". (обратите внимание на закрывающую точку - это исчезнет, но требуется для создания папки, начинающейся с ".")
- При появлении запроса используйте путь к файлу в формате C: /Users/NAME/.ssh/id_rsa (обратите внимание, что на .ssh нет закрывающей точки).
Сохранение ключа id_rsa в этом месте должно устранить ошибку разрешения.
Ответ 10
Я столкнулся с той же проблемой. Решение на окнах:
- откройте меню "Пуск" и введите cmd
- Право и выберите запуск от имени администратора
- Затем введите cd Users_YOURUSERNAME_\Замените "YOURUSERNAME" на имя своей учетной записи Windows.
- Тип:
mkdir.ssh
Это создаст папку .ssh.
Ответ 11
Если у вас есть эта проблема в Linux, то вам может понадобиться сначала создать каталог:
mkdir /Users/Eva/.ssh/id_rsa