fragen stichworte

Warum verwendet ssh keine Identität in der Konfigurationsdatei?

Ich versuche, ein bestimmtes git-Repo so zu konfigurieren, dass ein bestimmter öffentlicher/privater Schlüssel für die Authentifizierung verwendet wird.

Dies ist in ~/.ssh/config

Host Repo
HostName bitbucket.org
User git
IdentityFile ~/.ssh/ynd
LogLevel DEBUG

Und dies ist das Protokoll, wenn Sie versuchen, das Repo zu verschieben

debug1: Connecting to bitbucket.org [104.192.143.1] port 22.
debug1: Connection established.
debug1: identity file/Users/evgenipetrov/.ssh/ynd type 1
debug1: key_load_public: No such file or directory
debug1: identity file/Users/evgenipetrov/.ssh/ynd-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version conker_1.0.315-a08d059 app-134
debug1: no match: conker_1.0.315-a08d059 app-134
debug1: Authenticating to bitbucket.org:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha2-256-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-sha2-256-etm@openssh.com none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A
debug1: Host 'bitbucket.org' is known and matches the RSA host key.
debug1: Found key in/Users/evgenipetrov/.ssh/known_hosts:1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key:/Users/evgenipetrov/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to bitbucket.org ([104.192.143.1]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
debug1: Sending command: git-receive-pack '[deleted]'
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
repository access denied.
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 3348, received 1736 bytes, in 0.4 seconds
Bytes per second: sent 9562.2, received 4958.2
debug1: Exit status 1
fatal: Could not read from remote repository.

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

Ich kann sehen, dass die Identität gefunden wird, jedoch nicht zur Authentifizierung verwendet wird, wenn die Publickey-Authentifizierung vom Server angefordert wird.

Was mache ich falsch? Warum verwendet ssh IdentityFile nicht aus der Konfigurationsdatei?

antworten

Sie haben den Eindruck, dass Ihre Sitzung nicht auf den angegebenen Schlüssel zugreifen kann und auf den Standardschlüssel zurückgreift. und es ist in der Lage, auf das Bitbucket zuzugreifen, aber dann können Sie mit diesem Schlüssel nicht auf das Repo zugreifen. Schauen Sie sich also die Repo-Berechtigungen mit dem Standardschlüssel/Users/evgenipetrov/.ssh/id_rsa

an

prüft auch, welche ssh-Schlüssel in den ssh-agent geladen werden und laden Sie das fehlende mit ssh-add

Der Host muss mit dem übereinstimmen, was Sie für ssh oder git clone verwenden.

Also

ssh -vv Repo

Das sollte den richtigen Schlüssel verwenden.

Auch zur besseren Lesbarkeit. Platziere die Konfiguration korrekt

Host Repo
   HostName bitbucket.org
   User git
   IdentityFile ~/.ssh/ynd
   LogLevel DEBUG

Auch ich sehe das

debug1: identity file/Users/evgenipetrov/.ssh/ynd type 1
debug1: key_load_public: No such file or directory

Prüfen Sie, ob die Datei vorhanden ist