Permitindo scp, mas não ssh - sem scponly

8

Estou migrando um servidor Debian para o Ubuntu 16.04. Um dos pacotes no servidor Debian é o scponlyque atua como um shell e permite conexões ssh apenas para fins de scp (não logando ou executando nada além do scpbinário). Detalhes podem ser encontrados aqui . Este pacote já está no Debian por pelo menos 2 atualizações físicas de servidor, inúmeras atualizações de sistema operacional e provavelmente data de 2007.

scponlynão está em nenhum repositório 16.04 e não é compilado na barra de ativação. Embora eu seja capaz de instalá-lo a partir do código-fonte, isso me fez pensar se nos últimos 10 anos ou mais existe uma maneira melhor de configurar o ssh para permitir apenas comandos scp, que é mais amigável ao Ubuntu 16.04 e menos baseado no obscuro e passado distante. Alguma ideia?

abligh
fonte

Respostas:

15

De acordo com a resposta serverfault.com, permita o SCP, mas não o login real usando o SSH , uma maneira atualmente suportada é usando rssh, disponível no universerepositório:

sudo apt-add-repository universe

sudo apt-get install rssh

Para permitir o SCP, você deve descomentar a linha correspondente no /etc/rssh.confarquivo (além de outros protocolos que deseja ativar):

allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
#allowsvnserve

É apenas uma questão de alterar o shell de login do usuário para o shell rssh, por exemplo

sudo chsh -s /usr/bin/rssh steeldriver

Você pode testar se o SCP funciona, por exemplo

$ scp steeldriver@localhost:~/Pictures/somefile.png ./
steeldriver@localhost's password: 
somefile.png                                                               100%   34KB  33.7KB/s   00:00    
$

mas o SSH deve falhar com uma mensagem de rejeição como

$ ssh steeldriver@localhost
steeldriver@localhost's password: 
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-88-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul  6 16:23:47 2016 from localhost

This account is restricted by rssh.
Allowed commands: scp

If you believe this is in error, please contact your system administrator.

Connection to localhost closed.

Observe que não parece necessário adicionar /usr/bin/rsshà lista de shells de login permitidos em / etc / shells

chave de aço
fonte
Obrigado. Votado há um tempo atrás e verificado hoje, funciona tão aceito.
abligh