Who can help me solve the SSH authentication issue?

Hi everyone, I deployed a code repository on a local server, using gitlab. I know this is the github community, but the problem I encountered seems to be about SSH authentication.
I rarely use git, I have read a little “pro git”.

This is the log of ssh:

$ ssh -Tvvv git@gitlab.XX
OpenSSH_8.5p1, OpenSSL 1.1.1k  25 Mar 2021
debug1: Reading configuration data /etc/ssh/ssh_config
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/c/Users/ABC/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/c/Users/ABC/.ssh/known_hosts2'
debug2: resolving "gitlab.XX" port 22
debug3: ssh_connect_direct: entering
debug1: Connecting to gitlab.XX [192.168.51.54] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48
debug1: Connection established.
debug1: identity file /c/Users/ABC/.ssh/id_rsa type 0
debug1: identity file /c/Users/ABC/.ssh/id_rsa-cert type -1
debug1: identity file /c/Users/ABC/.ssh/id_dsa type -1
debug1: identity file /c/Users/ABC/.ssh/id_dsa-cert type -1
debug1: identity file /c/Users/ABC/.ssh/id_ecdsa type -1
debug1: identity file /c/Users/ABC/.ssh/id_ecdsa-cert type -1
debug1: identity file /c/Users/ABC/.ssh/id_ecdsa_sk type -1
debug1: identity file /c/Users/ABC/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /c/Users/ABC/.ssh/id_ed25519 type 3
debug1: identity file /c/Users/ABC/.ssh/id_ed25519-cert type -1
debug1: identity file /c/Users/ABC/.ssh/id_ed25519_sk type -1
debug1: identity file /c/Users/ABC/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /c/Users/ABC/.ssh/id_xmss type -1
debug1: identity file /c/Users/ABC/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.5
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
debug1: compat_banner: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.5 pat OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* compat 0x04000002
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to gitlab.XX:22 as 'git'
debug3: record_hostkey: found key type ED25519 in file /c/Users/ABC/.ssh/known_hosts:1
debug3: load_hostkeys_file: loaded 1 keys from gitlab.XX
debug1: load_hostkeys: fopen /c/Users/ABC/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug3: order_hostkeyalgs: have matching best-preference key type ssh-ed25519-cert-v01@openssh.com, using HostkeyAlgorithms verbatim
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c
debug2: host key algorithms: ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,aes256-cbc,aes192-cbc
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,aes256-cbc,aes192-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com,zlib
debug2: compression stoc: none,zlib@openssh.com,zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
debug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-ed25519 SHA256:na31/CugRLEiOgVNOf3mN15l3ZLqLgU/tzW1vggc1sQ
debug3: record_hostkey: found key type ED25519 in file /c/Users/ABC/.ssh/known_hosts:1
debug3: load_hostkeys_file: loaded 1 keys from gitlab.XX
debug1: load_hostkeys: fopen /c/Users/ABC/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug1: Host 'gitlab.XX' is known and matches the ED25519 host key.
debug1: Found key in /c/Users/ABC/.ssh/known_hosts:1
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /c/Users/ABC/.ssh/id_ed25519 ED25519 SHA256:+LjmQS1ss7dITCFo06MpWbEGZk/xo2FMNA9xMqjuYEE agent
debug1: Will attempt key: /c/Users/ABC/.ssh/id_rsa RSA SHA256:N9aeOwUjI7YFU/HNjdf2dbb0zben/sWYpVeenoLZoL4
debug1: Will attempt key: /c/Users/ABC/.ssh/id_dsa
debug1: Will attempt key: /c/Users/ABC/.ssh/id_ecdsa
debug1: Will attempt key: /c/Users/ABC/.ssh/id_ecdsa_sk
debug1: Will attempt key: /c/Users/ABC/.ssh/id_ed25519_sk
debug1: Will attempt key: /c/Users/ABC/.ssh/id_xmss
debug2: pubkey_prepare: done
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /c/Users/ABC/.ssh/id_ed25519 ED25519 SHA256:+LjmQS1ss7dITCFo06MpWbEGZk/xo2FMNA9xMqjuYEE agent
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: /c/Users/ABC/.ssh/id_rsa RSA SHA256:N9aeOwUjI7YFU/HNjdf2dbb0zben/sWYpVeenoLZoL4
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /c/Users/ABC/.ssh/id_dsa
debug3: no such identity: /c/Users/ABC/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /c/Users/ABC/.ssh/id_ecdsa
debug3: no such identity: /c/Users/ABC/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /c/Users/ABC/.ssh/id_ecdsa_sk
debug3: no such identity: /c/Users/ABC/.ssh/id_ecdsa_sk: No such file or directory
debug1: Trying private key: /c/Users/ABC/.ssh/id_ed25519_sk
debug3: no such identity: /c/Users/ABC/.ssh/id_ed25519_sk: No such file or directory
debug1: Trying private key: /c/Users/ABC/.ssh/id_xmss
debug3: no such identity: /c/Users/ABC/.ssh/id_xmss: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
git@gitlab.XX's password:
$ git push origin master
git@gitlab.XX's password:
Permission denied, please try again.
git@gitlab.XX's password:
Permission denied, please try again.
git@gitlab.XX's password:
git@gitlab.XX: Permission denied (publickey,password).
fatal: Could not read from remote repository.

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

I have added the public key to the gitlab page, but when verifying the authentication, I still need to enter a password. I am a little confused. Who can give me some ideas?

$ git remote -v
gitlab-hz       git@gitlab.XX/xxxx.git (fetch)
gitlab-hz       git@gitlab.XX/xxxx.git (push)
origin  git@gitlab.XX/xxxx.git (fetch)
origin  git@gitlab.XX/xxxx.git (push)

I have set the SSH repository address to origin, but when I execute git push again, it still prompts me that I need a password. I used public key password and gitlab user password respectively, and it doesn’t work. I’m wondering, what password is needed?

Excuse me for any possible offence.

That means the SSH key isn’t configured correctly: Maybe the server doesn’t recognize the one you want, or the client doesn’t use it. The log shows the client offering /c/Users/ABC/.ssh/id_ed25519.

Configuring SSH on the server-side is still system-specific, so I think you might have better luck in the GitLab forum.

That means the SSH key isn’t configured correctly: Maybe the server doesn’t recognize the one you want, or the client doesn’t use it. The log shows the client offering `/c/Users/ABC/.ssh/id_ed25519` 

Yes, I also suspect that the SSH key is wrong, but I have recreated it many times and the result is the same.
I also tried to specify the SSH key for authentication, but it didn’t work.

git@gitlab.XX's password: <<< What should I give it? I entered ssh public passphrase and it was useless, gitlab user pw was useless, I don’t understand why

I’d like to understand where to look for the problem.

Configuring SSH on the server-side is still system-specific, so I think you might have better luck in the [GitLab forum](https://forum.gitlab.com/).

I posted on the gitlab forum and no one seems to answer. It would be great if anyone here can answer

This is a red herring: If the public key authentication is set up correctly, you won’t be asked for a password, other than possibly the passphrase for the key.

The only generic things I can think of here is:

  • Make sure that the key your SSH client offers is actually the one you want. If not, load the correct one into SSH agent.
  • Check if the key you uploaded is the matching .pub (public) key.
  • Make sure that the key your SSH client offers is actually the one you want. If not, load the correct one into SSH agent.

Yes. I entered ssh public passphrase, it didn’t work, I also executed “ssh-add ~/.ssh/id_ed25519”.

  • Check if the key you uploaded is the matching .pub (public) key.

$ git config credential.helper store
$ git push https://gitlab.XX/owner/repo.git

Username for 'https://gitlab.XX': <USERNAME>       
Password for 'https://USERNAME@gitlab.XX': <PASSWORD>

I found a working method, which is to upload via http, but I still want to know why the SSH method does not work.

update progress

According to note_20478658 prompt, I checked the /var/log/auth.log log and found that there are a large number of “Failed password for invalid user git” records from my PC (192.168.4.228). What does this mean? Do I need to create a git user on the git server?

/var/log/auth.log snippet

Oct 15 02:05:01 hzssgitlab54 CRON[11955]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 15 02:05:01 hzssgitlab54 CRON[11955]: pam_unix(cron:session): session closed for user root
Oct 15 02:05:02 hzssgitlab54 sshd[11983]: Invalid user git from 192.168.4.228 port 6551
Oct 15 02:05:05 hzssgitlab54 sshd[11983]: pam_unix(sshd:auth): check pass; user unknown
Oct 15 02:05:05 hzssgitlab54 sshd[11983]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.4.228
Oct 15 02:05:07 hzssgitlab54 sshd[11983]: Failed password for invalid user git from 192.168.4.228 port 6551 ssh2
Oct 15 02:05:12 hzssgitlab54 sshd[11983]: pam_unix(sshd:auth): check pass; user unknown
Oct 15 02:05:15 hzssgitlab54 sshd[11983]: Failed password for invalid user git from 192.168.4.228 port 6551 ssh2
Oct 15 02:05:19 hzssgitlab54 sshd[11983]: pam_unix(sshd:auth): check pass; user unknown
Oct 15 02:05:21 hzssgitlab54 sshd[11983]: Failed password for invalid user git from 192.168.4.228 port 6551 ssh2
Oct 15 02:05:21 hzssgitlab54 sshd[11983]: Connection closed by invalid user git 192.168.4.228 port 6551 [preauth]
Oct 15 02:05:21 hzssgitlab54 sshd[11983]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.4.228
Oct 15 02:05:24 hzssgitlab54 sshd[12022]: Invalid user git from 192.168.4.228 port 12294
Oct 15 02:05:30 hzssgitlab54 sshd[12022]: pam_unix(sshd:auth): check pass; user unknown
Oct 15 02:05:30 hzssgitlab54 sshd[12022]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.4.228
Oct 15 02:05:32 hzssgitlab54 sshd[12022]: Failed password for invalid user git from 192.168.4.228 port 12294 ssh2
Oct 15 02:05:37 hzssgitlab54 sshd[12022]: pam_unix(sshd:auth): check pass; user unknown
Oct 15 02:05:40 hzssgitlab54 sshd[12022]: Failed password for invalid user git from 192.168.4.228 port 12294 ssh2
Oct 15 02:05:41 hzssgitlab54 sshd[12022]: Failed password for invalid user git from 192.168.4.228 port 12294 ssh2
Oct 15 02:05:41 hzssgitlab54 sshd[12022]: Connection closed by invalid user git 192.168.4.228 port 12294 [preauth]
Oct 15 02:05:41 hzssgitlab54 sshd[12022]: PAM 1 more authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.4.228

sudo passwd -d git

passwd: user ‘git’ does not exist

I created a git user, but it says that the code repository cannot be found.

$ git push -u origin master
git@gitlab.XX’s password:
fatal: ‘devops1/XXX.git’ does not appear to be a git repository
fatal: Could not read from remote repository.

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

-------------update--------------

I started it with docker-compose, and I redeployed once and this problem still occurs.

version: “3”
services:
web:
image: ‘gitlab/gitlab-ce:13.10.0-ce.0’
restart: always
hostname: ‘192.168.51.142’
environment:
TZ: ‘Asia/Shanghai’
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails[‘postBuffer’] = 524288000
external_url ‘http://gitlab.XXX
ports:
- ‘80:80’
- ‘443:443’
- ‘2222:22’
volumes:
- ‘./data/config:/etc/gitlab’
- ‘./data/logs:/var/log/gitlab’
- ‘./data/data:/var/opt/gitlab’

I am using push on the server deployed by yum, everything is normal.

$ git push -u gitlab-ssh master
The authenticity of host ‘gitlab.XXX (192.168.51.106)’ can’t be established.
ED25519 key fingerprint is SHA256:LNBI8q0iTV7bQAhYT0rtlblbL4QIv+vtL4GKpXFnHQE.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘gitlab.XXX’ (ED25519) to the list of known hosts.
Enumerating objects: 12830, done.
Counting objects: 100% (12830/12830), done.
Delta compression using up to 6 threads
Compressing objects: 100% (3914/3914), done.
Writing objects: 100% (12830/12830), 4.25 MiB | 13.02 MiB/s, done.
Total 12830 (delta 9048), reused 12579 (delta 8879), pack-reused 0
remote: Resolving deltas: 100% (9048/9048), done.
To gitlab.XXX:devops/elastalert.git

  • [new branch] master → master
    Branch ‘master’ set up to track remote branch ‘master’ from ‘gitlab-ssh’.