Problema de chave SSH

2

Eu quero configurar meu servidor doméstico para usar as chaves ssh, mas quando eu seguir o tutorial no link para configurar chaves ssh eu recebo isso:

Bad port 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'

Eu supero a parte em que você cria a chave usando:

ssh-keygen -t dsa

mas a parte que me pede para fazer isso:

ssh-copy-id user@servername

é quando recebo o erro acima.

Obrigado pela ajuda.

    
por Stefano Palazzo 22.01.2011 / 23:06

2 respostas

4

Não sei por que esse script não está funcionando para você, mas é apenas um script simples de ajuda. Tente fazê-lo manualmente (e se houver um problema diferente do script, ele poderá ajudá-lo a diagnosticar o problema).

Os passos para fazer isso são:

  1. copie sua chave para o servidor remoto com scp ~/.ssh/id_dsa.pub user@servername:~/
  2. ssh para o servidor remoto com ssh user@servername
  3. verifique se o diretório .ssh existe e possui as permissões corretas invocando ssh com algo como ssh localhost
  4. coloque sua chave no lugar correto com cat ~/id_dsa.pub >> ~/.ssh/authorized_keys

(você pode excluir o arquivo id_dsa.pub no seu diretório pessoal na máquina de destino)

Isto assume que você tem uma chave dsa - se você tem uma chave rsa, use id_rsa.pub em todos os casos.

Existem algumas maneiras complexas de fazer isso em uma única linha, mas se você tiver um problema, elas não serão mais úteis do que o script para ajudá-lo a descobrir.

    
por Andrew G. 22.01.2011 / 23:49
3

Recebi a mesma mensagem de erro quando tentei efetuar login com uma porta não padrão.

Para depurar, executei o script, prefixando bash -x . Aqui é onde eu me deparei com problemas:

+ ssh -p8882 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'

Então, foi necessária a opção de linha de comando '-p8882' e tentei usá-la como a máquina para tentar alcançar. Escusado será dizer que falhou. Eu teria que ver sua saída para isolar ainda mais o seu problema.

Como teeks99 disse, tenha certeza que você pode logar com sua senha primeiro. Isso deve isolar os problemas "não é possível fazer o login com ssh" de problemas "ssh-copy-id está quebrado de alguma forma".

Editado para adicionar:

você pode contornar alguns dos problemas de não conseguir passar argumentos adicionais para o ssh criando ou adicionando um arquivo chamado ~/.ssh/config :

Host shortname
    HostName ec2-0-0-0-0.compute-1.amazonaws.com
    Port  8882
    IdentityFile ~/.ssh/nonstandard.name
    User ubuntu

man 5 ssh_config para detalhes

Com mais ou menos essa configuração, consegui que o script funcionasse apenas emitindo ssh-copy-id shortname

    
por user886694 14.02.2012 / 23:26