Sur mon propre ordinateur, sous MacOSX, je l’ai dans ~ / .ssh / config
Host *
ForwardAgent yes
Host b1
ForwardAgent yes
b1 est une machine virtuelle exécutant Ubuntu 12.04. Je ssh à comme ça:
ssh pupeno@b1
et je me connecte sans me demander de mot de passe car j'ai déjà copié ma clé publique. En raison de la transmission, je devrais être capable de passer de bsh à pupeno @ b1 et cela devrait fonctionner, sans me demander de mot de passe, mais ce n'est pas le cas. Il me demande un mot de passe.
Qu'est-ce que je rate?
Voici le résultat détaillé de la seconde ssh:
pupeno@b1:~$ ssh -v pupeno@b1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to b1 [127.0.1.1] port 22.
debug1: Connection established.
debug1: identity file /home/pupeno/.ssh/id_rsa type -1
debug1: identity file /home/pupeno/.ssh/id_rsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_dsa type -1
debug1: identity file /home/pupeno/.ssh/id_dsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 35:c0:7f:24:43:06:df:a0:bc:a7:34:4b:da:ff:66:eb
debug1: Host 'b1' is known and matches the ECDSA host key.
debug1: Found key in /home/pupeno/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pupeno/.ssh/id_rsa
debug1: Trying private key: /home/pupeno/.ssh/id_dsa
debug1: Trying private key: /home/pupeno/.ssh/id_ecdsa
debug1: Next authentication method: password
pupeno@b1's password:
ubuntu
ssh
mac-osx
forwarding
pupeno
la source
la source
ssh-add -K
est spécifique à OS X.Vérifiez si vos
./ssh/id_rsa .ssh/id_dsa
.ssh/id_ecdsa
fichiers disposent des autorisations appropriées qui devraient appartenir à votre utilisateur et être chmodés 600.Vérifiez que vous avez la bonne clé publique
pupeno/.ssh/authorized_keys
sur b1 et vérifiez siauthorized_keys
un saut de ligne se trouve à la fin de la clé.Vérifiez que ssh-agent est en cours d’exécution, essayez de charger les clés via
ssh-add
Essayez l’authentification et le transfert basés sur GSSAPI avec
ssh -K
la source
J'ai eu un problème avec la requête de transfert d'agent de rejet du serveur sshd car il ne restait plus d'espace dans / tmp. C'est parce que sshd doit créer un socket dans / tmp. Le nettoyage du disque a résolu mon problème.
ssh -v a dit à l'époque:
la source
Une autre raison possible est le partage de connexion: l'un d'entre eux est peut-être déjà connecté à l'autre hôte sans le transfert d'agent et le partage de connexion activés. La deuxième connexion avec
ssh -A
(ou spécifiée de manière équivalente dans le fichier de configuration) via la connexion partagée ignorera automatiquement l'-A
indicateur. Ce n'est qu'après la déconnexion complète ou la désactivation du partage de connexion pour la deuxième connexion que le transfert d'agent fonctionne.la source
Pour le bénéfice des autres googleurs qui sont également arrivés à cette question:
Des espaces incorrects dans un fichier ~ / .ssh / config peuvent également causer des problèmes de tête.
J'ai récemment aidé un de mes collègues qui avait ceci:
au lieu de cela:
J'ai également rencontré des cas où l'indentation manquante des directives sous la liste des hôtes avait une incidence sur la fonctionnalité, même si ce n'était pas censé l'être.
la source
Ajouter les lignes suivantes au fichier .ssh / config
Ajouter une clé à l'agent SSH
Se connecter au serveur distant
Lancer le test de connexion contre GitHub
Exécuter le test à distance de ls sur un référentiel git ciblé
la source