Не удается отправить приложение Vue CLI на github.io после сборки — разрешение отклонено (publickey)

Я устранил неполадки https://help.github.com/en/github/authenticating-to-github/error-permission-denied-publickey

  1. Следует ли использовать команду sudo с Git?

Я не использую sudo вместе с моими командами git

  1. Убедитесь, что вы подключаетесь к правильному серверу

Выполнение $ ssh -vT [email protected] устанавливает соединение на порту 22 и возвращает You've successfully authenticated

  1. Всегда используйте пользователя "git"

Я использовал команду set-url, чтобы изменить репо для использования протокола SSH, и ssh -T [email protected] возвращает:

debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [140.82.118.4] port 22.
debug1: Connection established.
debug1: identity file /home/warwick/.ssh/id_rsa type 0
debug1: identity file /home/warwick/.ssh/id_rsa-cert type -1
debug1: identity file /home/warwick/.ssh/id_dsa type -1
debug1: identity file /home/warwick/.ssh/id_dsa-cert type -1
debug1: identity file /home/warwick/.ssh/id_ecdsa type -1
debug1: identity file /home/warwick/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/warwick/.ssh/id_ed25519 type -1
debug1: identity file /home/warwick/.ssh/id_ed25519-cert type -1
debug1: identity file /home/warwick/.ssh/id_xmss type -1
debug1: identity file /home/warwick/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.0p1 Ubuntu-6build1
debug1: Remote protocol version 2.0, remote software version babeld-17f81433
debug1: no match: babeld-17f81433
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/warwick/.ssh/known_hosts:3
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/warwick/.ssh/id_rsa RSA SHA256:XUyMmE8J489MaD9Ix/1xJdilSU4aH/F27hdhQubMQL4
debug1: Will attempt key: /home/warwick/.ssh/id_dsa 
debug1: Will attempt key: /home/warwick/.ssh/id_ecdsa 
debug1: Will attempt key: /home/warwick/.ssh/id_ed25519 
debug1: Will attempt key: /home/warwick/.ssh/id_xmss 
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,rsa-sha2-512,rsa-sha2-256,ssh-dss>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/warwick/.ssh/id_rsa RSA SHA256:XUyMmE8J489MaD9Ix/1xJdilSU4aH/F27hdhQubMQL4
debug1: Server accepts key: /home/warwick/.ssh/id_rsa RSA SHA256:XUyMmE8J489MaD9Ix/1xJdilSU4aH/F27hdhQubMQL4
Enter passphrase for key '/home/warwick/.ssh/id_rsa': 
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([140.82.118.4]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = en_ZA.UTF-8
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
Hi WNortier! You've successfully authenticated, but GitHub does not provide shell access.
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 3452, received 2484 bytes, in 0.5 seconds
Bytes per second: sent 6930.1, received 4986.7
debug1: Exit status 1
  1. Убедитесь, что у вас есть ключ, который используется

Я создал новую комбинацию открытого и закрытого ключей в соответствии с https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account Identity added: /home/warwick/.ssh/id_rsa ([email protected])

Здесь возникла проблема:

Запуск eval "$(ssh-agent -s)" в терминале и запуск ssh-add -l возвращает The agent has no identities., хотя я только что добавил его?

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

Я сталкиваюсь с отказом в доступе (publickey) каждый раз, когда пытаюсь запустить сборку и отправку. Я создал файл .deploy.sh в соответствии с этим руководством в документации Vue, раскомментировал и добавил свое имя пользователя в строку, предназначенную для отправки github.io https://cli.vuejs.org/guide/deployment.html#github-pages

set -e
npm run build
cd dist
git init
git add -A
git commit -m "deploy"
git push -f [email protected]:wnortier/wnortier.github.io.git master
cd -

но когда я запускаю его с sh .deploy.sh, он возвращается

 DONE  Compiled successfully in 2175ms                                  15:40:48
  File                                 Size               Gzipped

  dist/js/chunk-vendors.c4d3d4de.js    114.27 KiB         40.31 KiB
  dist/js/app.8b5fd9c9.js              6.99 KiB           2.90 KiB
  dist/css/app.35dcd38a.css            0.27 KiB           0.21 KiB

  Images and other types of assets omitted.

 DONE  Build complete. The dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html

Initialized empty Git repository in /home/warwick/Projects/wnortier.github.io/dist/.git/
[master (root-commit) 74551eb] deploy
 8 files changed, 14 insertions(+)
 create mode 100644 css/app.35dcd38a.css
 create mode 100644 favicon.ico
 create mode 100644 img/logo.82b9c7a5.png
 create mode 100644 index.html
 create mode 100644 js/app.8b5fd9c9.js
 create mode 100644 js/app.8b5fd9c9.js.map
 create mode 100644 js/chunk-vendors.c4d3d4de.js
 create mode 100644 js/chunk-vendors.c4d3d4de.js.map
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Конфиг git выглядит следующим образом:

[email protected]
user.name=warwick
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://github.com/WNortier/wnortier.github.io.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
user.name=warwick
[email protected]

Пожалуйста, кто-нибудь может мне помочь?


person Warwick    schedule 26.02.2020    source источник
comment
1. Не могли бы вы включить содержимое файла конфигурации git (.git/config) и .deploy.sh для репозитория? 2. Не могли бы вы включить полный подробный вывод сборки npm run?   -  person chrisputnam9    schedule 26.02.2020
comment
Вы проходите аутентификацию как пользователь GH WNortier. Теперь вы можете отправлять данные в любой репозиторий в разделе github.com/WNortier или в любой репозиторий GH, для которого было добавлено WNortier. как соавтор. В какой репо вы пытаетесь нажать? Это, я полагаю: github.com/WNortier/wnortier.github.io?   -  person phd    schedule 26.02.2020
comment
@chrisputnam9 Я добавил это в конец своего поста.   -  person Warwick    schedule 26.02.2020
comment
@phd исправить это мое собственное репо   -  person Warwick    schedule 26.02.2020
comment
Можете ли вы нажать на репо из командной строки?   -  person phd    schedule 26.02.2020
comment
@phd да, я могу отправить любые изменения, внесенные в проект, но это блокирует меня, когда я пытаюсь запустить свой скрипт, который содержит команду сборки ... Я пробовал запускать все команды в скрипте вручную, используя sudo, но также сказал разрешение отклонен   -  person Warwick    schedule 26.02.2020
comment
sudo виноват, конечно. Он меняет текущего пользователя, а git (точнее, ssh) не имеет доступа к вашим ssh-ключам. Никогда не используйте sudo, если это действительно не требуется (задачи системного администратора).   -  person phd    schedule 26.02.2020


Ответы (2)


Оказалось, что мой ключ ssh все время был настроен правильно.
Мне удалось решить проблему, выполнив следующую команду: sudo chown -R $USERNAME /home/<myusername> Это позволило мне запустить сценарий развертывания без [sudo].

person Warwick    schedule 27.02.2020

Установите GIT_SSH_COMMAND в своем сеансе (как вы, а не root)

export GIT_SSH_COMMAND='ssh -Tv'

И запусти свой скрипт.

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

person VonC    schedule 27.02.2020