Отказано в разрешении SSH при использовании префикса протокола SSH - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь добавить ключ ssh в свою учетную запись GitLab, чтобы использовать его через npm.

Я добавил свой ключ после https://docs.gitlab.com/ee/ssh/.

ssh -T git@gitlab.com

Работает нормально и доставляетсообщение Добро пожаловать в Gitlab, имя пользователя .

Но ssh -T ssh://git@gitlab.com не работает, и выдайте мне это сообщение об ошибке:

Отказано в доступе (publickey).

И когда я запускаю npm install в своем проекте узла, где я добавил свой модуль узла в качестве зависимости внутри файла package.json, он возвращает следующую ошибку:

npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t ssh://git@gitlab.com/myproject/myproject.git
npm ERR!
npm ERR! Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR!
npm ERR! exited with error code: 128

Я добавил свою зависимость в package.json следующим образом:

"my-project": "git@gitlab.com:myproject/myproject.git",

Я не очень разбираюсь в ssh и парном соединении, если кто-нибудь может сказать мне, что не так с моей конфигурацией, это мне очень поможет, спасибо,

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

В чем разница между " SSH ", " ssh " & " ssh: // "?

SSH - протокол транспортного уровня. ссылка

ssh является клиентом OpenSSH SSH.OpenSSH - это средство подключения для удаленного входа по протоколу SSH. ссылка

ssh: // - это унифицированный указатель ресурса (URL). ссылка


ssh -T git@gitlab.com - Используя ssh-клиент, войдите на gitlab.com под именем пользователя git

ssh -T ssh://git@gitlab.com - Используя ssh-клиент,войдите на gitlab.com с именем пользователя ssh: // git (спасибо Amessihel за подробный ответ)

ssh://git@gitlab.com/myproject/myproject.git - Указывает приложению, обращающемуся по этому URL, что ему необходим клиент sshдоступ, и если в операционной системе установлен клиент ssh, открывает клиент SSH, войдите на gitlab.com с именем пользователя git и получите доступ к репо myproject/myproject.git.Chrome понимает этот URL, скопируйте этот URL в адресную строку Chrome и нажмите Enter.

Как и любой URL, например, https://google.com. Многие клиенты поддерживают HTTP, например, wget, curl или веб-браузер, а для HTTP и HTTPS URL операционные системы будут открывать веб-браузеры.

0 голосов
/ 19 февраля 2019

Забавно быть введенным в заблуждение следующей строкой (говоря о себе):

ssh -T ssh://git@gitlab.com

Команда на самом деле не ожидает префикс протокола, но префикс hostname или не имя пользователя , за которым следует arobase , как сказано на странице руководства:

ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:] порт] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i индивидуальный_файл] [-J [пользователь @]хост [: порт]] [-L адрес] [-l логин] [-m mac_spec] [-O ctl_cmd] [-o опция] [-p порт] [-Q запрос_опция] [-R адрес] [-S ctl_path] [-W хост: порт] [-w local_tun [: remote_tun]] [пользователь @] имя хоста [команда]

Здесь на самом деле требуется ssh://git как имя пользователя .Поэтому он не будет входить в систему, поскольку имя пользователя, к которому вы подключаетесь, должно быть git, а не ssh://git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...