risposta-alla-domanda-sullo-sviluppo-web-bd.com

Perché viene distribuito un cap che concede l'autorizzazione negata (chiave pubblica)?

Ok, sono confuso da qualcosa ... Sono in grado di impegnarmi nel mio repository github bene, ma quando provo a fare un cap deploy dalla mia cartella locale al mio server di staging ottengo Permission denied (publickey).

Se eseguo ssh [email protected], ottengo effettivamente un errore PTY allocation request failed on channel 0

Quindi qualcosa qui è sbagliato.

Se eseguo ssh -vT [email protected], ottengo:

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

Le mie chiavi sono nella cartella ~/.ssh, quindi qual è il problema e perché sono in grado di eseguire il commit nel repository se c'è un problema chiave ??

AGGIORNAMENTO: Ho notato qualcosa quando sono entrato nella mia cartella .ssh. C'è una nuova coppia di chiavi che è stata creata quando ho installato Github per Mac ... perché non poteva semplicemente usare la mia coppia di chiavi esistente che non conosco.

39
GiH

Mi assicurerei che il tuo server di staging abbia accesso ssh a github. Eseguire lo stesso comando "ssh -vT [email protected]" tramite un terminale sul server di staging; questo aiuterà a determinare se si tratta di un problema ssh sulla macchina remota.

18
Dave Bettin

Ho dovuto fare quanto segue:

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

A volte ricevo questo errore e scrivo solo $ ssh-add -k per aggiungere la mia identità e poi funziona. Non sai esattamente perché funzioni o perché il messaggio di errore non lo suggerisca, ma arriva sempre in soccorso!

30
Catfish

Ho incontrato lo stesso problema dopo aver installato GitHub per Mac OS X. L'applicazione ha creato una nuova chiave privata ssh in ~/.ssh/github_rsa e l'ha aggiunta all'agente di autenticazione ssh.

Controllare quale chiave l'agente ssh auth ha memorizzato nella cache:

$ 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)

Ogni volta che ti connetti a github.com o ad altri servizi ssh, questa chiave viene usata per prima.

Cancella le chiavi memorizzate nella cache da ssh-agent usando questo comando:

$ ssh-add -D

Ora il client ssh dovrebbe funzionare normalmente, usando la chiave definita in ~/.ssh/config o ~/.ssh/id_rsa.

2
Jiang Xin

Se stai usando MAC. Forse la tua chiave ssh non è stata aggiunta all'agent di autenticazione. Il seguente comando lo farà

ssh-add path_to_private_key

per esempio

ssh-add ~/.ssh/id_rsa
1
Rajat Bansal

L'errore è dovuto al fatto che ssh-add non sa come parlare con l'agente di autenticazione . Il problema può essere risolto impostando la variabile di ambiente SSH_AUTH_SOCK.

Se si esegue ssh-agent si dovrebbe ottenere un output come questo:

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;

Esegui questo:

eval $(ssh-agent)

E poi :

ssh-add -D
0
Sankalp Singha