无法与gitlab建立ssh连接

问题描述:

我在gitlab上有一个项目,我试图推送一个提交。我首先用https url复制了项目,但之后将其改为ssh,然后运行cat ~/.ssh/id_rsa.pub,它给了我ssh密钥:我有拷贝将密钥粘贴到我的gitlab配置文件中的ssh密钥,但尝试推送提交我收到一条消息:无法与gitlab建立ssh连接

主机'gitlab'的真实性无法建立。 RSA密钥 指纹是SHA256:cZiqgz2tMzLXftNIIXmQ9v + 6M38xM1LzxROnDM1OJ0Q。 您确定要继续连接(是/否)吗?是 警告:将'07 .no,'myIpAddress'(RSA)永久添加到已知主机列表中。 权限被拒绝(公钥)。

在运行ssh -Tv [email protected]

OpenSSH_7.4p1, LibreSSL 2.5.0 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: Connecting to myEmail [myIpAddress] port 22. 
debug1: Connection established. 
debug1: identity file /Users/myUser/.ssh/id_rsa type 1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/myUser/.ssh/id_rsa-cert type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/myUser/.ssh/id_dsa type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/myUser/.ssh/id_dsa-cert type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/myUser/.ssh/id_ecdsa type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/myUser/.ssh/id_ecdsa-cert type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/myUser/.ssh/id_ed25519 type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/myUser/.ssh/id_ed25519-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_7.4 
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3p2 Debian-9etch3 
debug1: match: OpenSSH_4.3p2 Debian-9etch3 pat OpenSSH_4* compat 0x00000000 
debug1: Authenticating to myEmail:22 as 'git' 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: algorithm: diffie-hellman-group-exchange-sha1 
debug1: kex: host key algorithm: ssh-rsa 
debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha1 compression: none 
debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha1 compression: none 
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(2048<7680<8192) sent 
debug1: got SSH2_MSG_KEX_DH_GEX_GROUP 
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent 
debug1: got SSH2_MSG_KEX_DH_GEX_REPLY 
debug1: Server host key: ssh-rsa SHA256:Wcsi4VBAIf2M+M62Gx16W2yCR8rbtm9yh/WiQRe707o 
debug1: Host 'myEmail' is known and matches the RSA host key. 
debug1: Found key in /Users/myUser/.ssh/known_hosts:2 
debug1: rekey after 4294967296 blocks 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: SSH2_MSG_NEWKEYS received 
debug1: rekey after 4294967296 blocks 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /Users/myUser/.ssh/id_rsa 
debug1: Authentications that can continue: publickey 
debug1: Trying private key: /Users/myUser/.ssh/id_dsa 
debug1: Trying private key: /Users/myUser/.ssh/id_ecdsa 
debug1: Trying private key: /Users/myUser/.ssh/id_ed25519 
debug1: No more authentication methods to try. 
Permission denied (publickey). 

我该如何解决呢?

+0

好的,所以它都会警告你正在连接的新主机,正如@Rohit Poudel正确回答的一样,但是在你的编辑中还会显示“Permission denied(publickey)”,暗示GitLab无法识别该密钥。您确定回购站位于您的用户帐户下,您大概还添加了您的SSH密钥? – roryrjb

+0

也只是为了确认,如果你运行'git remote -v',它是否显示:'origin \t [email protected]:your_user_account/your_repo'而不是任何对'https'的引用? – roryrjb

+0

它显示git @ gitlab – Leff

它告诉你,你从来没有连接到这台服务器。如果你期待这一点,这是非常正常的。如果您偏执,请使用备用渠道验证密钥的校验和/指纹。 (但是请注意,有人可以重定向您的ssh连接,也可以重定向Web浏览器会话。)

如果您在从此安装ssh之前已连接到此服务器,则服务器已用新密钥重新配置或者某人在欺骗服务器的身份。由于中间人攻击的严重性,它警告你可能性。

无论哪种方式,你都有一个安全的加密频道给某人。没有人没有与指纹相对应的私钥可以解码您发送的内容。

您用来验证自己身份的密钥是无关的......您不希望将身份验证信息发送给可能会窃取该密码的欺诈服务器,因此您不应该期待任何更改,具体取决于您是否要使用密码或私钥进行登录。你在这个过程中还没有那么远。

+0

是的,我以前没有尝试过连接,这是我第一次,但是,因为这个,我无法推送任何东西,我该如何解决这个问题? – Leff