Copia a chave ssh para outra máquina para que eu possa usar o GitHub lá?

11

Eu tenho um servidor remoto. Eu já posso ssh com sucesso nesse servidor remoto - minha chave está em authorized_keys no servidor remoto.

Agora, quero extrair do GitHub diretamente para esse servidor remoto. Mas estou recebendo permission denied (publickey) quando tento ssh -T [email protected] no servidor remoto.

Devo copiar id_rsa.pub diretamente da minha máquina local para o servidor remoto ou isso é perigoso?

Se esta é a resposta, qual é a melhor maneira de fazer isso?

Ou devo gerar uma nova chave pública no servidor remoto e adicioná-la à minha conta do github?

ATUALIZAÇÃO:

Aqui está a saída de um ssh detalhado:

~$ ssh -Tv [email protected]
OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [192.30.252.131] port 22.
debug1: Connection established.
debug1: identity file /home/richard/.ssh/id_rsa type -1
debug1: identity file /home/richard/.ssh/id_rsa-cert type -1
debug1: identity file /home/richard/.ssh/id_dsa type -1
debug1: identity file /home/richard/.ssh/id_dsa-cert type -1
debug1: identity file /home/richard/.ssh/id_ecdsa type -1
debug1: identity file /home/richard/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/richard/.ssh/known_hosts:1
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: Trying private key: /home/richard/.ssh/id_rsa
debug1: Trying private key: /home/richard/.ssh/id_dsa
debug1: Trying private key: /home/richard/.ssh/id_ecdsa
debug1: No more authentication
    
por Richard 22.04.2015 / 12:47

4 respostas

4

o id_rsa.pub pode ser copiado em qualquer lugar sem qualquer perigo real para ele. Esta é a sua chave pública e destina-se a coisas como esta. É metade de um par de chaves, e compartilhá-lo com lugares que você quer acessar é como você permite que a chave privada funcione.

Para permitir login remoto, sua chave pública precisa ser listada em authorized_keys ( authorized_keys2 em alguns sistemas). Uma chave em cada linha, neste formato:

ssh-rsa AAAIHAVEREMOVEDTHEMAJORITYOFTHEKEYBECAUSEISEENONEEDTOPOSTTHATWALLOFTEXTHERE9yfRjxw== jarmund@jarmint

Para conseguir isso, depois de copiá-lo, basta anexá-lo ao arquivo authorized_keys da seguinte forma: cat id_rsa.pub >> ~/.ssh/authorized_keys

A maioria dos sistemas sãos se recusará covardemente a permitir o uso de login baseado em chave se a pasta .ssh tiver permissões muito frouxas. A pasta deve ser 700 , por isso, se você ainda tiver problemas: chmod 700 ~/.ssh

Além disso, os arquivos na pasta .ssh devem ser 600: chmod 600 ~/.ssh

Editar 1:

O próprio arquivo, id_rsa.pub não é necessário no servidor remoto. Apenas o conteúdo, como parte de authorized_keys . Eu recomendo rodar ssh -vT [email protected] para habilitar o registro detalhado, para que você possa ver exatamente de quais permissões ele reclama.

Editar 2:

Isso significa que nenhuma das chaves oferecidas corresponde ao que o servidor remoto possui no arquivo. O que você quer ver é algo assim:

debug1: Offering RSA public key: /home/jarmund/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 535

Coisas a verificar:

  • Certifique-se de que uma das chaves privadas é aquela que corresponde à chave pública que você adicionou ao controle remoto authorized_keys
  • Verifique se a chave corresponde ao nome de usuário com o qual você está tentando fazer login (deve ser a última parte da chave pública)
  • Tente renomear authorized_keys para authorized_keys2
por 22.04.2015 / 13:20
2
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/richard/.ssh/id_rsa
debug1: Trying private key: /home/richard/.ssh/id_dsa
debug1: Trying private key: /home/richard/.ssh/id_ecdsa
debug1: No more authentication

De acordo com o rastreio de depuração, nenhum desses arquivos-chave existe no sistema local, e o ssh não ofereceu nenhuma chave para o servidor remoto. Certifique-se de que a chave que você deseja usar realmente exista no host em que você está executando o ssh e que o arquivo tenha o nome correto. Se você quiser usar um arquivo de chave diferente de um dos arquivos padrão, você deve especificá-lo na linha de comando ssh:

ssh -i /path/to/some_key -Tv [email protected]
    
por 22.04.2015 / 19:01
1

O servidor precisa da sua chave privada para autenticar no Github. Sua chave pública, como o próprio nome sugere, é considerada pública, por isso não pode ser suficiente para autenticar.

Se você não precisa usar o Github no servidor remoto sem ter se conectado através do ssh, você deve usar o encaminhamento do ssh-agent. Um guia para isso está disponível no Github: link .

Caso contrário, você deve gerar uma nova chave e vinculá-la à sua conta.

    
por 22.04.2015 / 19:47
0

Você pode colocar diretamente o comando.

$ cat ~/.ssh/id_rsa.pub

se você tiver a chave ssh já presente, ela será mostrada. Caso contrário, dá erro. Você precisa adicionar uma nova chave.

    
por 01.02.2016 / 12:03

Tags