web-dev-qa-db-fra.com

Que faire en cas d'échec de la demande d'allocation PTY sur le canal 0?

Je ne peux pas voir pour envelopper ma tête en créant une clé ssh pour GitHub. Je l'ai fait fonctionner il y a un certain temps, mais je ne peux pas comprendre ce qui a changé. J'ai depuis supprimé les clés SSH précédentes de mon compte GitHub. Après avoir suivi les instructions plusieurs fois pour générer une clé SSH ( http://help.github.com/mac-key-setup ) et tester "ssh [email protected]", j'obtiens ce qui suit;

Échec de la demande d'allocation PTY sur le canal 0 ERREUR: Salut ... authentifié avec succès ... GitHub ne fournit pas d'accès Shell ... Connexion à github.com fermée.

J'ai examiné le guide de dépannage et j'ai remarqué que mon répertoire ssh n'avait pas de fichier de configuration. Après l'avoir créé, je ne sais pas quoi ni comment entrer le chemin local sur la ligne IdentityFile. Je ne sais même pas si c'est nécessaire dans mon cas?

Si vos informations d'authentification github sont différentes de celles de votre compte d'ordinateur, vous devrez modifier votre fichier de configuration ssh.

Créez ou ouvrez le fichier dans ~/.ssh/config Ajoutez les lignes suivantes:

Host github.com
    User git
    Hostname github.com
    PreferredAuthentications publickey
    IdentityFile [local path to private key half of github public key you provided]

Vous devrez peut-être également mettre à jour les autorisations sur votre dossier .ssh et son contenu. L'application SSH ignorera les fichiers secrets trop permissifs.

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*

J'ai également exécuté ssh -v [email protected] dont les résultats peuvent être vus ici http://Gist.github.com/60728 rien de différent de ce que je peux dire.

Une idée de ce que je fais mal?

42
Shawn

Comme décrit dans les commentaires sur la question, la "demande d'allocation PTY a échoué" est un redingue en ce qui concerne l'authentification GitHub (c'est le résultat de la tentative de connexion interactive à GitHub lorsque le seul service SSH qu'ils proposent est Git non interactif). over-SSH; l'authentification fonctionne, ils ne fournissent tout simplement pas de service interactif "Shell").


La personne qui a posé la question a écrit ceci dans un commentaire:

Je suppose que le problème connexe est que lorsque j'essaie de créer un nouveau référentiel et "git Push Origin master", je renvoie ce qui suit "Erreur: autorisation à [email protected]/myapp refusée à mon nom d'utilisateur. Fatal: l'extrémité distante a raccroché de façon inattendue "

Cela semble plus probablement être le problème réel. Cela semble indiquer que la télécommande nommée Origin n'est pas configurée pour pointer correctement vers un référentiel GitHub.

Vérifiez la sortie de git remote show -n Origin. Probablement "URL de récupération" et "URL de transmission" sont les mêmes. Ils devraient tous deux ressembler à ceci:

[email protected]:git-user-name/repository-name

Lorsque vous vous connectez à GitHub sur le Web, vous pouvez utiliser le nom d'utilisateur de votre compte ou son adresse e-mail associée. Lorsque vous accédez à des référentiels (ou récupérez des référentiels privés), vous devez utiliser votre nom d'utilisateur réel (une adresse e-mail ne fonctionnera pas). Il semble que vous utilisiez votre adresse e-mail au lieu de simplement votre nom d'utilisateur GitHub. Pour résoudre ce problème, reconfigurez l'URL de la télécommande:

git remote set-url Origin [email protected]:github-username/repository-name

Votre nom d'utilisateur est affiché à de nombreux endroits sur les pages Web de GitHub une fois que vous êtes connecté. L'endroit le plus facile à trouver est entre votre gravatar et le lien "Tableau de bord" sur l'en-tête de la page (vous verrez une icône de silhouette si vous n'avez pas un gravatar configuré). Ce même emplacement renvoie à votre page de profil public; L'URL de cette page doit également se terminer par votre nom d'utilisateur.

37
Chris Johnsen