desenv-web-rp.com

Como forçar o cliente ssh a usar apenas autenticação de senha?

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

Eu encontrei um caminho:

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

e agora recebo a senha, mas existem formas oficiais?

414
LanceBaynes

Recentemente, eu também precisei disso e vim com isso:

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

Você precisa garantir que o cliente não esteja configurado para proibir a autenticação de senha.

636
scoopr

Eu descobri um atalho para esse fim:

ssh user:@example.com

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

174
Halil Özgür

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

Na tua .ssh, crie um arquivo chamado config (se ainda não existir) e defina as permissões para 600, você pode criar seções que começam com

Host <some hostname or pattern>

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

Host bob.specific.foo
user fred

Host *.home.example
user billy
port 9191

então você poderia ter

Host server.to.test
PubkeyAuthentication=no

nesse arquivo e simplesmente

ssh server.to.test

e a opção será escolhida.

38
EightBitTony

Recentemente, eu precisei disso, mas nenhuma das opções acima funcionou, ssh -v mostrou que as opções da linha de comando passavam através do -o switch foi substituído pelos valores especificados em meu ~/.ssh/config Arquivo.

O que funcionou foi o seguinte:

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

Na página do manual ssh:

 -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 a esta resposta: Como posso fazer o ssh ignorar .ssh/config?

14
adeelx

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

ssh -i /dev/null Host

Eu tenho que fazer isso permanentemente (para solucionar o servidor SSH quebrado em uma PDU montada em rack da APC - fique longe 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
6
miken32

E também não se esqueça, não há BatchMode=yes ativo em .ssh/config. Caso contrário, você não terá chance de obter um Prompt de senha interativo.

2
Gunnar Tiedt

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

Então a solução foi

 /usr/bin/ssh [email protected]

Anote o caminho completo. Fiz isso depois de correr cyg-get openssh

1
Jonathan

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: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-Host-key-checking.html

1
shrx