Configure o sftp para usar a senha, mas o ssh para não usar a senha


15

É possível configurar um usuário no ubuntu com o openssh para que o ssh não use autenticação por senha, mas o sftp?

Presumo que, se eu mudar /etc/ssh/ssh_configpara ter PasswordAuthentication yesisso, é possível que os usuários usem senhas para efetuar login com ssh e sftp.

Edit: Meu objetivo aqui é permitir que alguns usuários façam sftp com uma senha em vez de um arquivo de chave. Mas eu não quero que os usuários do ssh consigam fazer login com uma senha, quero que eles tenham que usar um arquivo de chave. Se ajudar, não preciso que os usuários do sftp possam fazer login, eles precisam fazer o sftp.

Respostas:


26

Pelo que entendi, você tem (pelo menos para esse problema em particular) dois grupos distintos de usuários, um sendo capaz de fazer login via SSH e obter um shell interativo (vamos chamar o grupo ssh) e outro sendo capaz de fazer login via SFTP e obter apenas um SFTP shell (vamos chamar o grupo sftp).

Agora crie os grupos sshe sftpno seu sistema groupadd, coloque os respectivos usuários nos grupos ( gpasswd -a $USERNAME $GROUPNAME) e acrescente as seguintes linhas no final ( isso é importante! ) Do seu local sshd_configem /etc/ssh/sshd_config:

Match Group sftp
  PasswordAuthentication yes
  # Further directives for users in the "sftp" group

Match Group ssh
  PasswordAuthentication no
  # Further directives for users in the "ssh" group

Leia sobre a Matchdiretiva em sshd_config (5) e sobre os padrões permitidos em ssh_config (5) .

Você também precisará reiniciar o sshprocesso para que isso entre em vigor:

sudo /etc/init.d/ssh restart


6
Isso não está bem documentado, mas apenas uma diretiva Match será usada; você deve colocar a diretiva mais específica no topo. Se você listar o sftp primeiro, um usuário que esteja nos dois grupos terá permissão para autenticação de senha.
Tobu

Obrigado! Já existe um sshgrupo nas minhas caixas do ubuntu, então eu só preciso adicionar sftpe colocar os usuários do sftp nesse grupo. Vou combinar a sua resposta com o uso scponlypara manter os usuários sftp de login.
dar

2
Se PasswordAuthenticationestiver programado para nocontinuar, isso ainda funcionará? Será que Match Groupsubstituí-lo para os usuários SFTP? Porque é isso que eu tenho e não funciona. Posso conectar-me com a chave, mas não como um usuário sftp.
alphadogg

0

Não, e não vejo como isso melhoraria a segurança. Qual seria o sentido?

allowed_keys pode permitir comandos diferentes para chaves diferentes, se é isso que você procura. Caso contrário, você tem a opção de criar várias contas e usar acls ou sudo.


Não estou tentando melhorar a segurança. Estou tentando facilitar para alguns usuários o uso de uma senha em vez de um arquivo de chaves para acesso sftp. No entanto, não quero que ninguém use uma senha para acesso ssh.
Dar

@dar OK; contas diferentes então. Se eles tivessem a mesma conta, alguém sabendo a senha do sftp poderia substituir algum arquivo de perfil (.ssh / rc, .profile, .bashrc…) e obter os mesmos privilégios que alguém que conhece a chave privada.
precisa

0

Tomando uma facada no escuro aqui, mas você pode achar esse tópico interessante.

É justo prender meus usuários de SFTP ao diretório inicial?


Não vejo nada sobre PasswordAuthentication, corrija-me se estiver errado.
Dar

Não, você está correto. Não ficou claro o que você queria fazer com SFTP vs SSH. Vejo no outro comentário que você deseja que os usuários usem uma senha para SFTP, mas não para SSH. Por quê?
Tyler K

Porque esses usuários que precisam usar o sftp consideram os arquivos-chave um desafio, mas eles entendem como digitar senhas. Tudo se resume a um problema de experiência do usuário para o sftp. Mas quero minimizar a área de superfície de ataque mantendo as senhas fora da mistura ssh.
Dar

O SFTP funciona primeiro abrindo um túnel ssh e depois transmitindo arquivos via FTP. Você não pode realmente se divorciar dos dois. Eu acho que você poderia configurar algumas ACLs, mas isso realmente não faz sentido.
Tyler K
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.