2011-11-01 19 views
34

Ok, estoy confundido acerca de algo ... Soy capaz de comprometerse a mi repositorio GitHub muy bien, pero cuando intento hacer una cap deploy de mi carpeta local al servidor de ensayo consigo Permission denied (publickey).¿Por qué se despliega un límite que otorga permiso denegado (clave pública)?

Si yo ejecutar ssh [email protected] En realidad recibo un error PTY allocation request failed on channel 0

Así que algo aquí está mal.

Si me quedo ssh -vT [email protected] me sale:

OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011 
debug1: Reading configuration data /Users/myuser/.ssh/config 
debug1: Reading configuration data /etc/ssh_config 
debug1: Applying options for * 
debug1: Connecting to github.com [207.97.227.239] port 22. 
debug1: Connection established. 
debug1: identity file /Users/myuser/.ssh/id_rsa type 1 
debug1: identity file /Users/myuser/.ssh/id_rsa-cert type -1 
debug1: identity file /Users/myuser/.ssh/id_dsa type -1 
debug1: identity file /Users/myuser/.ssh/id_dsa-cert type -1 
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5github2 
debug1: match: OpenSSH_5.1p1 Debian-5github2 pat OpenSSH* 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_5.6 
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: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP 
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY 
debug1: Host 'github.com' is known and matches the RSA host key. 
debug1: Found key in /Users/myuser/.ssh/known_hosts:2 
debug1: ssh_rsa_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 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /Users/myuser/.ssh/github_rsa 
debug1: Remote: Forced command: gerve technomad 
debug1: Remote: Port forwarding disabled. 
debug1: Remote: X11 forwarding disabled. 
debug1: Remote: Agent forwarding disabled. 
debug1: Remote: Pty allocation disabled. 
debug1: Server accepts key: pkalg ssh-rsa blen 279 
debug1: Remote: Forced command: gerve technomad 
debug1: Remote: Port forwarding disabled. 
debug1: Remote: X11 forwarding disabled. 
debug1: Remote: Agent forwarding disabled. 
debug1: Remote: Pty allocation disabled. 
debug1: Authentication succeeded (publickey). 
Authenticated to github.com ([207.97.227.239]:22). 
debug1: channel 0: new [client-session] 
debug1: Requesting [email protected] 
debug1: Entering interactive session. 
debug1: Sending environment. 
debug1: Sending env LANG = en_US.UTF-8 
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0 
Hi technomad! You've successfully authenticated, but GitHub does not provide shell access. 
debug1: channel 0: free: client-session, nchannels 1 
Transferred: sent 2384, received 2888 bytes, in 0.1 seconds 
Bytes per second: sent 42630.8, received 51643.3 
debug1: Exit status 1 

Mis llaves están en la carpeta ~/.ssh, así que cuál es el problema, y ​​por qué soy capaz de comprometerse con el repositorio si hay una cuestión clave ??

ACTUALIZACIÓN: Me di cuenta de algo cuando entré en mi carpeta .ssh. Hay un nuevo par de claves que se creó cuando instalé Github para Mac ... ¿por qué no podría simplemente usar mi par de llaves existente? No lo sé.

Respuesta

17

Me aseguraré de que su servidor de transición tenga acceso ssh a github. Ejecute el mismo comando "ssh -vT [email protected]" a través de un terminal en su servidor de transferencia; esto ayudará a determinar si se trata de un problema de SSH en la máquina remota.

+0

que funcionó gracias :), yo estaba pasando por alto esa parte. Pero todavía no sé por qué "ssh [email protected]" está volviendo "Falló la solicitud de asignación de PTY en el canal 0"? – GiH

+0

¿Puedes enviar ssh a otros servidores sin que surja ese problema? –

+0

yup, cuando entro a mi servidor funciona bien, es solo "ssh [email protected]", en realidad si lo hago "ssh -T [email protected]" también funciona bien ... ¿por qué no funciona? funciona sin la opción -T? ¿Podría ser un problema con Mac OSX lion? – GiH

2

Me encontré con el mismo problema después de instalar GitHub para Mac OS X. La aplicación creó una nueva clave privada ssh en ~/.ssh/github_rsa y la agregó al agente de autenticación ssh.

Comprobar la tecla que el agente de autenticación SSH ha almacenado en caché:

$ ssh-add -l 
2048 63:0c:a6:51:63:c1:35:76:5d:02:77:97:39:48:0e:4a /Users/jiangxin/.ssh/github_rsa (RSA) 

Siempre que se conecte a github.com u otros servicios de ssh, esta clave se utiliza por primera vez.

claras las claves almacenadas en caché de ssh-agent utilizando este comando:

$ ssh-add -D 

Ahora el cliente ssh debería funcionar normalmente, utilizando la clave definida en ~/.ssh/config o ~/.ssh/id_rsa.

95

que tenía que hacer lo siguiente:

$ ssh-add -D #remove existing identities 
    $ ssh-agent #copy the lines & run them 
    $ ssh-add  #uses the output from above 
+3

Ejecute estos comandos en su máquina local – Hossein

+1

Esta es la respuesta exacta al problema. No es necesario agregar la clave ssh en su máquina de escenario. Solo ejecuta el comando y listo ... Gracias @olore –

+13

Pero, ¿cuál es la razón detrás de esto, y qué hizo este comando para resolver esto? –

0

El error se debe a que, ssh-add no sabe cómo hablar con el agente de autenticación. El problema se puede resolver configurando la variable de entorno SSH_AUTH_SOCK.

Si ejecuta ssh-agent debe conseguir un poco de salida como esta:

SSH_AUTH_SOCK=/tmp/ssh-agVZL13989/agent.13989; export SSH_AUTH_SOCK; 
SSH_AGENT_PID=13990; export SSH_AGENT_PID; 
echo Agent pid 13990;SSH_AUTH_SOCK=/tmp/ssh-agVZL13989/agent.13989; export SSH_AUTH_SOCK; 
SSH_AGENT_PID=13990; export SSH_AGENT_PID; 
echo Agent pid 13990; 

Ejecutar este:

eval $(ssh-agent) 

Y luego:

ssh-add -D 
+0

Estimado Sankalp, su respuesta es muy breve y debe proporcionar información adicional para evitar que se elimine (ya se ha marcado para su eliminación por otro usuario) – furins

+1

Gracias @furins .. Voy a escribir algo de información. –

+0

¿por qué 'ssh-add -D'? Esto solo borrará tus identidades. No crea que ayudará a resolver el problema. –

20

consigo este error a veces y simplemente escribo $ ssh-add -k para agregar mi identidad y luego funciona. No estoy seguro exactamente por qué funciona esto o por qué el mensaje de error no lo sugiere, pero siempre viene al rescate.

1

Si está utilizando MAC. Tal vez su clave ssh no se haya agregado al agente de autenticación. Siguiente comando hará que

ssh-add path_to_private_key 

por ejemplo

ssh-add ~/.ssh/id_rsa 
Cuestiones relacionadas