ssh muitos usuários para uma casa

ssh muitos usuários para uma casa

Quero permitir que alguns usuários confiáveis ​​​​coloquem arquivos scp em meu servidor (para um usuário específico), mas não quero dar a esses usuários uma casa, nem login ssh.

Estou tendo problemas para entender as configurações corretas de usuários/grupos que preciso criar para permitir que isso aconteça.

Vou dar um exemplo;

Tendo:

  1. MyUser@MyServer
  2. MyUserpertence ao grupoMyGroup
  3. A casa do MyUser será, digamos,/home/MyUser
  4. SFTPGuy1@OtherBox1
  5. SFTPGuy2@OtherBox2

Eles me dão o seu id_dsa.pube eu adiciono ao meuauthorized_keys

Acho que faria no meu servidor algo como

useradd -d /home/MyUser -s /bin/false SFTPGuy1(e o mesmo para o outro ..)

E por último, useradd -G MyGroup SFTPGuy1(e novamente, para o outro cara)

Eu esperaria então que os SFTPGuys pudessem sftp -o IdentityFile=id_dsa MyServere fossem levados para a casa do MyUser ...

Bem, este não é o caso... O SFTP continua me pedindo uma senha.

Alguém poderia apontar o que estou perdendo?

Muito obrigado,

f.

[EDITAR:Messano StackOverflow me perguntou se o arquivoauthorized_keys era legível para outros usuários (membros do MyGroup). É um ponto interessante, esta foi a minha resposta:

Bem, não foi (era 700), mas então alterei as permissões do diretório .ssh e do arquivo de autenticação para 750, embora ainda sem efeito. Acho que vale a pena mencionar que meu diretório inicial ( /home/MyUser) também pode ser lido pelo grupo; a maioria dos diretórios é 750 e a pasta específica onde eles colocam os arquivos é 770.

Porém, quanto ao arquivo auth, acho que a autenticação seria realizada pelo usuário local em MyServer, não é? se for assim, não entendo a necessidade de outros usuários lerem... bem... só estou pensando. ]

Responder1

Antes de tentar isso, leia até o final, por favor.

Você pode fazer o que quiser criando 2 usuários, colocando-os no mesmo grupo e fornecendo-lhes o mesmo diretório inicial. Em seguida, crie o arquivo ~/.ssh/authorized_keys na página inicial compartilhada com as chaves inseridas.

As contas devem ter um shell, portanto bloqueie-as, usermod -L LOGINo que impedirá o login interativo.

As permissões no diretório ~/.ssh precisam ser g:rx e ~/.ssh/authorized_keys precisam ser g:r--

chmod g+rx ~/.ssh
chmod g+r ~/.ssh/authorized_keys

Isso causa problemas ao sshd, pois espera que o diretório seja no máximo g:r-- e o arquivo seja g:--- você recebe a mensagem de erro

Authentication refused: bad ownership or modes for file /home/test/.ssh/authorized_keys

Para fazer esse esquema funcionar agora você precisaquebrar as verificações embutidas do sshdeditando /etc/sshd_confige configurando StrictModes noo arquivo StrictModes yes. Reinicie o sshd para tornar as alterações conhecidas.

Deve funcionar como você deseja. Infelizmente, você retirou a segurança do sshd e poderá fazer alterações posteriormente que deixarão seu sistema totalmente aberto.

Para fazer isso com mais segurança, não faça nenhuma das alterações acima

Crie 2 contas de usuário no mesmo grupo e configure seu ~/.ssh/authorized_keys Crie um link de cada diretório inicial para o local onde você deseja que eles coloquem as coisas.

ln -s -n /path/to/stuff content

Bloqueie as permissões no diretório inicial para evitar que os usuários gravem neles.

Impedir que as contas façam login de forma interativa

usermod -L LOGIN

Altere as permissões em /path/to/stuff para permitir o acesso ao grupo.

Responder2

Parece que você deseja fornecer acesso a um ID de usuário que funciona como uma caixa de depósito para arquivos. Você pode restringir o que os usuários podem fazer no arquivo de chaves autorizadas.

Como você deseja que eles se conectem apenas a esse ID de usuário no servidor, você pode fornecer a eles um arquivo .ssh/config que os mapeia diretamente para o ID de usuário correto.

Responder3

A resposta a esta pergunta -Como posso criar uma conta de usuário que permita apenas uploads via sftp?- recomenda um pacote chamadoscponly- Nunca usei, mas parece que pode fazer o que você quiser.

Responder4

inspecionar os arquivos de log pode ajudar. Por favor, insira o seguinte após um login "mal sucedido"

tail -n 50 /var/log/secure

e poste a saída

informação relacionada