Usando SFTP com diretiva SSH ForceCommand

2

Eu configurei um servidor SSH (chame-o de group2.fqdn ) com essa diretiva ForceCommand :

Match Group group1
       ForceCommand ssh -t group1.fqdn

Match Group="*,!local,!group2,!root"
       ForceCommand ssh -t group3.fqdn

Isso interrompe sftp para usuários que não estão em group2 . Como posso modificar isso para que sftp funcione?

Assim: user1 de group1 :

sftp group2.fqdn

e eles (talvez tenham que digitar senhas duas vezes) estão fazendo sftp a group1.fqdn . Isso pode ser feito?

Contexto:
Em nosso laboratório, temos alguns servidores Ubuntu para cada grupo, mas apenas um tem permissão de acesso externo, portanto, todos os grupos tiveram que fazer login no servidor de um grupo e todos, exceto um, são forçados a usar o SSH em outro servidor. Costumávamos fazer isso com um shell personalizado, mas eu estou tentando usar as opções de servidor disponíveis em vez de hacks. A variante shell customizada não permitia SFTP, e isso também não, mas eu gostaria de, de alguma forma, fazer com que o SFTP funcionasse para todos esses servidores.

    
por muru 25.09.2014 / 02:25

1 resposta

2

O truque para fazer o SFTP funcionar é passar o comando SSH recebido do cliente como está para o servidor. Descobri isso enquanto testava o que acontece quando você faz scp ou sftp para uma pergunta no Unix & amp; Linux .

Agora, minha configuração parece:

Match Group group1
       ForceCommand /usr/local/bin/ssh_wrapper group1

Match Group="*,!local,!group2,!root"
       ForceCommand /usr/local/bin/ssh_wrapper group3

Onde /usr/local/bin/ssh_wrapper é:

#! /bin/sh

/usr/bin/ssh -t -o StrictHostKeyChecking=no $USER@${1:-default}.fqdn $SSH_ORIGINAL_COMMAND

De alguns testes rápidos, sftp e scp funcionam bem com essa configuração.

    
por muru 17.05.2016 / 23:48