SSH vs / e senha

3

Eu tenho um VPS que estou registrando em root via chaves SSH.

Agora, criei outro usuário user1 com o comando adduser e atribuí uma senha a ele. No entanto, sempre que tento fazer o login no servidor via winSCP usando user1 , ainda recebo o erro de que preciso inserir a chave privada e não consigo fazer login usando a senha do usuário 1.

Minhas perguntas são as seguintes:

  • Um usuário pode fazer login por meio dos dois métodos? Ou seja, usando as chaves SSH e uma senha?
  • Se o SSH for usado, todos os usuários do sistema serão obrigados a usar as chaves para efetuar login?
por tony9099 20.12.2017 / 14:41

1 resposta

4

Você pode adicionar regras para esse usuário específico no arquivo /etc/ssh/sshd_config , como no exemplo ao final desta resposta. Mas antes de ser avisado, permitir o login por senha via SSH é um pouco inseguro em termos de tentativas de força bruta possíveis para o servidor. Portanto, o caminho mais seguro a seguir é criar outra chave SSH no VPS ou em outra máquina Linux com a seguinte linha. O melhor é mudar para user1 nessa máquina antes de começar a usar os seguintes comandos com su - user1 . (Nota: você deve mudar para o diretório em que deseja que o par de chaves seja criado, pois o -f tem dificuldades com os caminhos):

ssh-keygen -t rsa -C "[email protected]" -f user1_key

O usuário pode alterar a senha posteriormente copiando seu par de chaves por um curto período de tempo no VPS ou em outra máquina Linux com:

ssh-keygen -p -f user1_key

Em seguida, forneça a chave privada ( user1_key ) para user1 e coloque a chave pública ( user1_key.pub ) no diretório inicial dos usuários em ~/.ssh/authorized_keys no VPS e altere a propriedade para user1 ou você su - user1 antes de fazer que para evitar a propriedade errada indesejada dentro do diretório home do usuário1.

mkdir -p /home/user1/.ssh
cat user1_key.pub >> /home/user1/.ssh/authorized_keys
# The next line is only needed if you have done the two above as 'root'
chown -Rv user1:user1 /home/user1/.ssh

O processo de criação de pares de chaves também pode ser feito no Windows usando o WinScp. Consulte aqui para referência. Você pode então querer garantir que o público e a chave privada tenham as permissões corretas definidas, que é 0600 para a chave privada dos usuários e 0644 para a chave pública dos usuários. (Nota: copiar a chave para um pendrive formatado no Windows ou drive deixa a chave perder suas permissões definidas, então você quer checar isso.

Se, no entanto, você quiser realmente fazer com que esse usuário possa efetuar login por senha, altere a seguinte linha em /etc/ssh/sshd_config :

AllowUsers mainuser user1

Adicione o seguinte no final:

Para ativar apenas a senha:

Match User user1
    PubkeyAuthentication no
    PasswordAuthentication yes

Para ativar os dois:

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication yes

Para ativar o ssh, só você pode remover essa parte ou configurá-la para:

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication no

Mais material de leitura que talvez não esteja necessariamente relacionado à pergunta, mas ao SSH em geral, você pode encontrar aqui , apenas esteja ciente de que algumas informações são especificadas para o oceano digital, mas ainda são úteis. Veja também a manpage para o comando ssh-keygen e o manpage para o comando ssh .

Agradecimentos a @ Eliah-Kagan para revisar e sugerir correções e acréscimos.

    
por Videonauth 20.12.2017 / 15:52