Desative o SSH interativo no nível do usuário

Desative o SSH interativo no nível do usuário

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_configfrom yespara 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.

informação relacionada