Desativar temporariamente a autenticação de chave pública ssh do cliente

37

Existe uma maneira de desativar temporariamente a autenticação de chave pública durante a ssh'ing e usar a autenticação por senha?

Atualmente, quero acessar um servidor remoto, mas estou usando outro laptop, não o meu.

Navegando nesse link , descobri que o comando ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no host1.example.orgnão funciona em todos os lugares. E sim, isso não funciona para mim. Estou usando: OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 de março de 2012

Edit: Eu também tentei digitar, ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no mas ainda tenho "Permissão negada (chave pública)".

Então, há uma configuração específica para fazer no servidor remoto, para que esse comando funcione? Ou quando esse comando funcionará conforme o esperado?

Muito obrigado por conselhos.

Nsukami _
fonte
30
Se você seguiu o link novamente, havia alguém informando que o método não funcionou, mas isso fez:ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no
NickW
@ Nikik Muito obrigado, talvez eu deva ter mencionado, tentei o comando que você propõe também, ainda tem a "Permissão negada (chave pública)".
Nsukami _
1
Acabei de acertar esse problema porque meu laptop tinha MUITAS chaves, e o ssh tentou todas elas, e fui rejeitado antes mesmo de ter a chance de digitar a senha. Obrigado por perguntar.
Dallaylaen
3
@NickW Se você colocar seu comentário como resposta, eu o recomendo.
labirinto

Respostas:

9

Isso parece um problema de configuração no lado do servidor.

Se o servidor permitir autenticação de chave pública e senha, mesmo se você tentar se conectar sem um arquivo de chave privada presente no cliente, ele deverá solicitar uma senha.

Se você estiver recebendo a mensagem de erro "Permission denied (publickey)" , parece que a autenticação por senha não é suportada no seu servidor.

Sem ver o arquivo / etc / sshd_config, é difícil saber, mas meu palpite seria que você precisa se certificar de que a seguinte linha existe:

PasswordAuthentication yes

Reinicie o servidor ssh e, quando você se conectar a partir do cliente, será solicitada uma senha se não houver uma chave privada presente ou se a chave privada não corresponder à chave pública no servidor.

Uma alternativa mais segura a isso seria copiar sua chave privada para o laptop que você está usando ou, de fato, gerar uma nova chave privada para ser usada nesse laptop e adicionar a chave pública a .ssh/authorized_keys

v25
fonte
6

Basta criar um arquivo de identificação em branco.

touch $HOME/.ssh/blank

Se você deixar a permissão 640 ou 644, o ssh reclamará que as permissões não são seguras o suficiente e não serão usadas. Se você modificá-lo para 600, ele solicitará uma senha três vezes e falhará porque não há senha. Então, basta deixá-lo 640 ou 644.

Então, quando você ssh usar este comando.

ssh -i $HOME/.ssh/blank servername-or-ip

Você pode usar .ssh / config e definir uma entrada de host para não usar a chave, mas é menos temporária ou pode criar aliases para server e server-nokey, mas é demorado e difícil de manter.

shane
fonte
5
-i /dev/nullfunciona também e não precisa verificar permissões.
svvac
Os arquivos em branco / nulos não funcionam, sshdiz ele Load key "/dev/null": invalid format, depois ele continua usando as outras chaves que você configurou e falha ao efetuar o login devido a muitas falhas de autenticação.
Malvineous 26/02
Para mim, isso não funcionou. Talvez minhas credenciais tenham sido armazenadas no chaveiro do gnomo.
Yaroslav Nikitenko