Não posso mostrar nada que pude. Depois de um pouco de pesquisa, descobri que não está lendo a configuração ssh no meu diretório pessoal.
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)
Quando em um computador idêntico de um amigo, onde tudo funciona, fica assim:
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)
Funcionou anteriormente e não tenho conhecimento de nada que pudesse ter feito para causar esse problema. Como isso pôde acontecer e como corrigi-lo?
Na documentação, apontada por tike, afirma que
Devido ao potencial abuso, esse arquivo deve ter permissões estritas: leitura / gravação para o usuário e não acessível por outros.
Minhas permissões são:
$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba 1029 1428 Jul 1 16:33 ..
-rwx------ 1 kuba 1029 1528 May 15 13:07 config
(...)
Eu acho que o problema pode estar com uma confusão sobre o diretório home. Quando forço o arquivo de configuração local, ele começa a funcionar e, de repente, começa a ler/nas/kuba
$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
^^^^^^^^^^
Mas meu dir de casa parece estar definido ok:
$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba
ssh
ignora aHOME
variável de ambiente. É uma prática ruim ignorarHOME
, parece que é o quessh
faz. Se ele não usarHOME
, a única alternativa que eu conheço é procurá-lo nouid
. Se você tiver duas entradas/etc/passwd
idênticasuid
, as duas acabarão usando o mesmo.ssh/config
arquivo, mesmo que tenham uma casa diferente.Respostas:
Você parece estar preso entre ssh_config específico do usuário e global.
Verifique as configurações de permissão do arquivo de configuração do usuário (
~/.ssh/config
) e do arquivo de configuração do sistema (/etc/ssh/ssh_config
) para entender em mais detalhes.Você pode ler mais sobre isso aqui . Praticamente, todos os arquivos no
.ssh
diretório com base no usuário devem estar no 600 e oconfig
arquivo no 644. Você pode definir isso com os seguintes comandos no diretório inicial:fonte
verificar permissões
e
Se as permissões forem ruins, o cliente ssh não tentará ler dele
fonte
Eu tive o mesmo problema e pude corrigi-lo definindo o sinalizador + x no meu
~/.ssh
dir (0700), enquanto também definia 0600~/.ssh/config
.fonte
Pelo que vale, eu tive o mesmo problema e o corrigi, fazendo com que o ssh crie novamente a
.ssh
pasta (apenas renomeiessh
e execute algum comando ssh) e copie os arquivos necessários posteriormente, com as permissões apropriadas. (configuração com 600).Aparentemente, o ssh fica desconfiado se a pasta
.ssh
for modificada de uma maneira que não aprova ...fonte
O SSH não lerá a configuração local se estiver em um sistema de arquivos montado em NFS. Vale a pena checar, porque todas as permissões podem ser boas e o SSH (pelo menos a versão 6.6) não fornece nenhuma indicação do motivo pelo qual não está lendo a configuração do usuário. (No entanto, ele será lido de um volume NFS se você usar a
-F
opção.)fonte
Encontrei o mesmo problema nos MacOs. Observando as informações de depuração de um login manual (ssh @), descobri que aparentemente o ssh pensava que meu diretório pessoal estava
/srv/home/<userid>
e procurava o.ssh
diretório lá dentro e ignorava o diretório/Users/<userid>/.ssh/
Provavelmente tem algo a ver com o trabalho de configurar os Macs de uma maneira específica, mas eu recomendo verificar isso
ssh
e o sistema operacional concordar com a localização do diretório inicial;)fonte
Como 'kasperd' indicou em seu comentário sobre a questão, observe que
ssh
não necessariamente procurará '$ {HOME} /. Ssh / config'. Como foi descoberto, é importante ir mais fundo e saber onde estava o diretório inicial no momento do logon e antes que uma nova HOME fosse declarada.A dica para analisar a saída de
ssh -xvvvF ~/.ssh/config server
foi muito perspicaz para ajudar a responder a essa mesma pergunta. Ao encontrar-se em um sistema em que dois nomes de usuário diferentes têm o mesmo UID no arquivo '/ etc / passwd', esse problema foi encontrado. Os dois usuários têm diretórios HOME diferentes definidos em '/ etc / passwd'.Nesse cenário, verifica-se que, se um estiver logado como o segundo usuário com um UID duplicado no arquivo '/ etc / passwd',
ssh
usará o diretório inicial do primeiro usuário com um UID correspondente do usuário executando o SSH comando.É verdade que esse caso de uso é bastante estranho e não ajuda a maioria das pessoas, mas realmente aconteceu, e essa pergunta / resposta ajudou a resolver um problema.
fonte
Isso foi causado pelas configurações de permissão de arquivo.
Verifique suas
.ssh
permissões de diretório e arquivos, também verifique suas configurações de permissão de diretório inicial.Para mim, eu não quero que outras pessoas vejam meus arquivos pessoais, então removo a
x
permissão do diretório da minha casa. O que leva o ssh a encontrar as chaves autorizadas para o caminho errado.Uma maneira de corrigir isso era definir outro caminho de autoridade
/etc/ssh/sshd_config
, por exemplo:depois copie seu pub para
/etc/ssh/authorized_keys
, trabalhou para mim.fonte