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

6

Eu me conecto a um servidor que não controle via SSH.

Eu uso o acesso a chaves públicas e não preciso conectar-me a uma senha interativa com o teclado.

Eu gostaria de desativar o acesso interativo ao teclado para o meu usuário, para que não haja como os outros hackarem dessa maneira.

Como não controle o servidor, existe uma maneira de configurar o arquivo de configuração do meu usuário para impedir o acesso interativo ao teclado?

    
O
por Richard 27.10.2011 / 20:09

3 respostas

11

Se você não tem absolutamente nenhum controle sobre o servidor, eu não vejo uma maneira de fazer isso, já que você não controla as configurações do servidor, que é onde isso teria que ser.

O que você precisa fazer é adicionar isso ao arquivo / etc / ssh / sshd_config:

PasswordAuthentication no

Agora, isso efetivamente desativaria a autenticação de senha para todos usuários, o que pode ser indesejável. O que você poderia fazer, então, é colocar essa diretiva de configuração em um bloco Match, então ela só se aplica ao seu usuário, no mesmo arquivo de configuração:

Match user yourusername
PasswordAuthentication no

Se você puder fazer com que o administrador do servidor faça isso para você, talvez seja o caminho a seguir.

Uma outra maneira é definir uma senha muito longa, aleatória e complicada para o usuário, dessa forma você está razoavelmente protegido contra tentativas aleatórias de invadir a força bruta. A maioria dos invasores provavelmente usaria alguma técnica baseada em dicionário, desde que sua senha seja longa e aleatória o suficiente, deve ser bastante segura.

Veja "man sshd_config" para mais detalhes. Além disso, a solução que proponho foi sugerida aqui .

    
por roadmr 27.10.2011 / 20:19
1

Você só precisa editar essa linha do arquivo /etc/ssh/sshd_config de yes para no :

#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
    
por Nishant 04.05.2016 / 14:47
0

[Suponho que você esteja usando o BASH como seu shell de login. Se não, ajuste apropriadamente ...]

Em ~/.ssh/authorized_keys , prefixe uma especificação de comando para cada linha assim:

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ê só receberá e-mails quando alguém usar uma senha para inserir sua conta.

    
por Kyler Laird 15.07.2014 / 04:29