Autoriser scp mais pas ssh - sans scponly

8

Je migre un serveur Debian vers Ubuntu 16.04. L'un des paquets sur le serveur Debian est celui scponlyqui agit comme un shell et autorise les connexions ssh uniquement à des fins scp (ne pas se connecter ou exécuter autre chose que le scpbinaire). Les détails peuvent être trouvés ici . Ce paquet a déjà été sur Debian à travers au moins 2 mises à niveau de serveur physique, d'innombrables mises à niveau du système d'exploitation et date probablement d'environ 2007.

scponlyn'est dans aucun référentiel 16.04 et n'est pas compilé sur le tableau de bord. Bien que je sois tout à fait capable de l'installer à partir de la source, cela m'a amené à me demander si au cours des 10 dernières années, il existe une meilleure façon de configurer ssh pour autoriser uniquement les commandes scp, qui est plus conviviale pour Ubuntu 16.04 et moins basée sur le dim et le passé lointain. Des idées?

abligh
la source

Réponses:

15

Selon cette réponse de serverfault.com Autoriser SCP mais pas la connexion réelle à l'aide de SSH , une façon actuellement prise en charge est d'utiliser rssh, qui est disponible à partir du universeréférentiel:

sudo apt-add-repository universe

sudo apt-get install rssh

Pour autoriser SCP, vous devez décommenter la ligne correspondante dans le /etc/rssh.conffichier (ainsi que tout autre protocole que vous souhaitez activer):

allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
#allowsvnserve

Ensuite, il suffit de changer le shell de connexion de l'utilisateur en shell rssh, par exemple

sudo chsh -s /usr/bin/rssh steeldriver

Vous pouvez ensuite tester que SCP fonctionne, par exemple

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

mais SSH devrait échouer avec un message de rejet comme

$ 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.

Notez qu'il ne semble pas nécessaire d'ajouter /usr/bin/rsshà la liste des shells de connexion autorisés dans / etc / shells

tournevis
la source
Merci. A voté il y a quelque temps et vérifié aujourd'hui que cela fonctionne, donc accepté.
abligh