
Eu me conecto a um servidor que não controlo via SSH.
Eu uso o acesso por chave pública e não preciso me conectar com uma senha interativa com teclado.
Gostaria de desabilitar o acesso interativo do teclado ao meu usuário para que não haja como outras pessoas hackearem dessa forma.
Como não controlo o servidor, existe uma maneira de configurar o arquivo de configuração do meu usuário para impedir o acesso interativo ao teclado?
Responder1
Se você não tem absolutamente nenhum controle sobre o servidor, não vejo uma maneira de fazer isso, pois você não controla as configurações do servidor, que é onde isso deveria estar.
O que você precisa fazer é adicionar isto ao arquivo /etc/ssh/sshd_config:
PasswordAuthentication no
Agora, isso desabilitaria efetivamente a autenticação por senha paratodosusuários, o que pode ser indesejável. O que você poderia fazer então é colocar esta diretiva de configuração em um bloco Match, para que ela se aplique apenas ao seu usuário, no mesmo arquivo de configuração:
Match user yourusername
PasswordAuthentication no
Se você conseguir que o administrador do servidor faça isso por você, esse pode ser o caminho a percorrer.
Uma outra maneira é definir uma senha muito longa, aleatória e complicada para o seu usuário, dessa forma você estará razoavelmente protegido contra tentativas aleatórias de invasão de força bruta. A maioria dos invasores provavelmente usaria alguma técnica baseada em dicionário, portanto, desde que sua senha seja longa e aleatória o suficiente, ela deverá ser bastante segura.
Consulte "man sshd_config" para obter mais detalhes. Além disso, a solução que proponho foi sugeridaaqui.
Responder2
Você só precisa editar esta linha do arquivo /etc/ssh/sshd_config
from yes
para no
:
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
Responder3
[Presumo que você esteja usando o BASH como seu shell de login. Caso contrário, ajuste adequadamente...]
Em ~/.ssh/authorized_keys
, acrescente uma especificação de comando a cada linha como esta:
command="ssh_key=XXX /bin/bash -l" ssh-dss AAAA...K3E= me@mymachine
Em ~/.bash-profile
, coloque a seguinte armadilha no topo:
if [ "${ssh_key}" != "XXX" ]; then
echo "${SSH_CLIENT}" | mailx -s "password login attempt!" me@mailservice
exit
fi
Agora você receberá e-mails quando alguém usar uma senha para entrar em sua conta.