Это мой первый доступ к GitHub, и у меня нет опыта использования консоли. Я на MacBook, используя Bash. Когда я пытаюсь получить доступ к GitHub, я получаю это:
git clone git@github.com:dhulihan/league-of-legends-data-scraper.git
Cloning into 'league-of-legends-data-scraper'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Я пытался следовать инструкциям на странице Github по поводу отказа в разрешении.
Когда я использую ssh -vT git@github.com
, я получаю следующее:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/XXXX/.ssh/id_rsa type -1
debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/XXXX/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/XXXX/.ssh/id_rsa
debug1: Trying private key: /Users/XXXX/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
Затем eval "$(ssh-agent -s)"
возвращает «Agent pid 2314», однако ssh-add -l
возвращает «Агент не имеет идентификаторов».
И вот где я застрял.
Ответы:
Полная информация в этом ответе .
Таким образом, когда
ssh-add -l
возвращается «Агент не имеет идентификаторов», это означает, что ключи, используемыеssh
(хранящиеся в таких файлах, как~/.ssh/id_rsa
,~/.ssh/id_dsa
и т. Д.), Либо отсутствуют, либо неизвестныssh-agent
, кто является агентом аутентификации, или что их разрешения установлены неправильно (например, мировой доступный для записи).Если ваши ключи отсутствуют или вы их еще не сгенерировали, используйте
ssh-keygen -t rsa
, затем,ssh-add
чтобы добавить их.Если ключи существуют, но не известны
ssh-agent
(например, если они находятся в нестандартной папке), используйтеssh-add /path/to/my-non-standard-ssh-folder/id_rsa
для их добавления.Смотрите этот ответ, если у вас возникли проблемы с
ssh-add
илиssh-agent
.источник
ssh-add /path/to/keyX
для каждого, особенно если они имеют нестандартные имена. Подробности здесь: stackoverflow.com/questions/3225862/… (хороший ответ)ssh-add
снова запустить после разрешения части разрешения проблемы. После этогоssh -vT git@github.com
не сработало. Мне нужно было добавить абсолютный путь, как указано выше. Тогда все было подливкой.попробуй это:
работал на меня
источник
chmod 600 ~/.ssh/id_rsa
, а затемssh-add ~/.ssh/id_rsa
ОТВЕТ 2019 г. на macOS Сьерра и Хай Сьерра и Каталина:
PS: большинство других ответов помогут вам создать новый ключ ssh ... но вам не нужно этого делать :)
Как подробно описано на https://openradar.appspot.com/27348363 , macOS / OS X до Yosemite использовался для запоминания ключей SSH, добавленных командой
ssh-add -K <key>
Итак, вот 4 шага, которые я должен был сделать, чтобы он заработал:
1:
ssh-add ~/.ssh/PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)
2: добавить следующее в
~/.ssh/config
3: убедитесь, что удалили все записи gitconfig, которые используют помощник osxkeychain:
4: перезагрузите терминал, чтобы он вступил в силу.
источник
Я застрял некоторое время на той же проблеме, которую я в конце концов решил.
Моя проблема : я не мог выполнить любой толчок. Я мог проверить и увидеть мой пульт (используя
git remote -v
), но когда я выполнилgit push origin master
, он вернулся:Permission denied (publickey). fatal: Could not read from remote repository.
и так.Как я это решил:
ssh-keygen -t rsa
. Ввод имени для файла ключа (когда его спросили) был бесполезен.ssh-add /Users/federico/.ssh/id_rsa
который успешно вернулсяIdentity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
ssh-add -l
команда сработала / казалась полезной (после выполнения предыдущих шагов), она успешно вернула мой ключ. Последний шаг показывает, где проверить ваш открытый ключ на странице GitHub. И эта команда поможет вам проверить все ключи:ls -al ~/.ssh
.Тогда команда толчка в конце концов сработала!
Я надеюсь, это поможет ! Удачи всем.
источник
Запустите следующие команды:
Перейдите в свою учетную запись Github: https://github.com/settings/profile
1) Нажмите: SSH и GPG ключи
2) Новый ключ SSH и прошёл его там
3) Добавить ключ SSH
Готово!
источник
Прежде всего, вам нужно перейти в каталог ssh
для этого типа следующей команды в вашем терминале в Mac или что вы используете в окне
теперь в ssh
вы можете найти все ваши ssh-ключи / файлы, относящиеся ко всем вашим проектам. Теперь введите следующую команду, чтобы показать, доступен ли какой-либо ssh-ключ.
это покажет вам все доступные SSH, в моем случае их было два
, вам нужно запустить агент, чтобы добавить в него SSH. Для этого типа следующая команда
теперь последнее, но не менее важное: вы добавите ssh в этот тип агента, выполнив следующую команду
замещать
источник
Это может вызвать для любого нового терминала, идентификатор агента отличается. Вам необходимо добавить закрытый ключ для агента
источник
Еще один элемент, который я понял, это то, что обычно папка .ssh создается в вашей корневой папке в Mac OS X / Users /. Если вы попытаетесь использовать ssh -vT git@github.com из другой папки, это выдаст вам ошибку, даже если вы добавили правильный ключ.
Вам необходимо снова добавить ключ (ssh-add 'правильный путь к id_rsa') из текущей папки для успешной аутентификации (при условии, что вы уже загрузили ключ в свой профиль в Git)
источник
Это сработало для меня:
chmod 700 .ssh chmod 600 .ssh/id_rsa chmod 644 .ssh/id_rsa.pub
Затем введите это:
ssh-add ~/.ssh/id_rsa
источник
~/.ssh
разрешениях. Тем не менее, вы можете значительно улучшить свой ответ, добавив полную команду (здесьchmod
) и объяснив, что это делает и зачем это нужно.После долгих попыток я наконец смог решить эту проблему в Windows. Для меня переменная User env GIT_SSH была установлена так, чтобы указывать на
который был установлен вместе с WinScp. Я изменил указание, чтобы использовать ssh.exe по умолчанию, который поставляется с git-scm "C: \ Program Files \ Git \ usr \ bin \ ssh.exe"
источник
Шаги для BitBucket:
если вы не хотите создавать новый ключ, пропустите ssh-keygen
Скопируйте открытый ключ в буфер обмена:
Войдите в Bit Bucket: перейдите в «Просмотр профиля» -> «Настройки» -> «SSH Keys» (на вкладке «Безопасность»). Нажмите «Добавить ключ», вставьте ключ в поле и добавьте описательный заголовок.
Вернитесь к Git Bash:
Вы должны получить:
Сейчас:
git pull
должно работатьисточник
У меня была эта проблема после восстановления жесткого диска из резервной копии.
Моя проблема: я мог проверить и увидеть свой пульт (используя git remote -v), но когда я запустил мастер git push origin, он вернул: Permission denied (publickey). Неустранимый: Не удалось прочитать из удаленного хранилища.
У меня уже была папка SSH и ключи SSH, и добавление их через Terminal (
ssh-add /path/to/my-ssh-folder/id_rsa
) успешно добавило мою личность, но я все еще не мог нажать и все еще получал ту же ошибку. Создание нового ключа было для меня плохой идеей, поскольку оно было связано с другими очень безопасными разрешениями в AWS.Оказалось, что связь между ключом и моим профилем Github разорвана.
Решение: Повторное добавление ключа в Github в «Профиле»> «Настройки»> «Ключи SSH и GPG» решило проблему.
Также: в моем аккаунте настроена двухфакторная аутентификация. В этом случае, если Терминал запрашивает учетные данные, используйте ваше имя пользователя, но НЕ пароль Github. Для двухфакторной аутентификации вам нужно использовать свой код аутентификации (для меня он был сгенерирован Authy на моем телефоне, и мне пришлось скопировать его в терминал для pw).
источник