Como forçar o cliente ssh a usar somente a senha auth?

307

Se eu usar o pubkey auth de, por exemplo: um Ubuntu 11.04, como posso definir o cliente ssh para usar somente a senha auth em um servidor? (apenas necessário por causa do teste de senhas em um servidor, onde eu padrão de login com chave)

Eu encontrei um jeito:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup

e agora sou solicitado a fornecer uma senha, mas existem maneiras oficiais?

    
por LanceBaynes 17.06.2011 / 08:26

8 respostas

476

Recentemente, precisei também disso e descobri isso:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

Você precisa ter certeza de que o cliente não está configurado para não permitir a autenticação de senha.

    
por 17.06.2011 / 08:50
149

Eu descobri um atalho para essa finalidade:

ssh user:@example.com

Observe os dois pontos ( : ) e a senha vazia depois dela.

    
por 13.04.2014 / 22:50
28

Além do método postado pelo scoopr, você pode definir as opções por host no arquivo de configuração do seu cliente ssh.

No diretório .ssh , crie um arquivo chamado config (se ainda não existir) e defina as permissões como 600 . Em seguida, você pode criar seções que começam com

host <some hostname or pattern>

e, em seguida, defina as opções por host depois disso, por exemplo,

host bob.specific.foo
user fred

host *.home.example
user billy
port 9191

para que você possa ter

host server.to.test
PubkeyAuthentication=no

nesse arquivo e, em seguida, simplesmente

ssh server.to.test

e a opção será escolhida.

    
por 18.06.2011 / 01:00
8

Recentemente precisei disso, mas nenhuma das opções acima funcionou, ssh -v mostrou que as opções de linha de comando transmitidas pela opção -o foram substituídas pelos valores especificados no meu arquivo ~/.ssh/config .

O que funcionou foi isto:

ssh -F /dev/null <username>@<host>

Na página ssh man:

 -F configfile
     Specifies an alternative per-user configuration file.  If a
     configuration file is given on the command line, the system-wide
     configuration file (/etc/ssh/ssh_config) will be ignored. The default 
     for the per-user configuration file is ~/.ssh/config.

Créditos para esta resposta: Como posso fazer o ssh ignorar? .ssh / config?

    
por 22.01.2016 / 16:40
3

Eu tentei algumas dessas respostas, mas ssh -v continuou mostrando minhas chaves públicas sendo retiradas do meu diretório pessoal. No entanto, a especificação de um arquivo de identidade falso fez o truque para mim:

ssh -i /dev/null host

Eu tenho que fazer isso permanentemente (para contornar o servidor SSH quebrado em uma PDU montada em rack da APC - fique longe dessas coisas se você se preocupa com segurança - então acabei colocando a opção no meu arquivo de configuração:

Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null
    
por 15.11.2016 / 23:23
2

As respostas @scoopr e @Halil Özgür não funcionaram para mim.

Isso funcionou para mim:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

Fonte: link

    
por 27.03.2015 / 18:04
2

E também tenha certeza, não há BatchMode=yes ativo em .ssh / config. Caso contrário, você não tem chance de obter uma solicitação de senha interativa.

    
por 20.12.2017 / 12:50
0

Eu posso ser o único no mundo com esse problema, mas eu tive um ssh de outro sistema operacional em execução (choco ssh no Windows em um shell cygwin) visto via which ssh

Então a solução foi

 /usr/bin/ssh [email protected]

Anote o caminho completo. Eu fiz isso depois de executar cyg-get openssh

    
por 23.02.2016 / 21:57