web-dev-qa-db-fra.com

Permettre scp mais pas ssh - sans scponly

Je migre un serveur Debian vers Ubuntu 16.04. Un des paquets sur le serveur Debian est scponly, qui agit en tant que shell et autorise les connexions ssh à des fins scp uniquement (ne vous connectez pas et n’exécutez rien d’autre que le binaire scp. Les détails peuvent être trouvés ici . Ce paquet a déjà été mis à jour sur Debian via au moins deux mises à niveau de serveur physique, d'innombrables mises à niveau de système d'exploitation et date probablement d'environ 2007.

scponly ne se trouve dans aucun référentiel 16.04 et n'est pas compilé dans le tableau de bord. Bien que je sois tout à fait capable de l’installer à partir des sources, je me suis demandé si, au cours des 10 dernières années, il existait un meilleur moyen de configurer ssh pour n’autoriser que les commandes scp, c’est plus convivial avec Ubuntu 16.04 et moins basé sur les passé lointain. Des idées?

8
abligh

Selon ceci serverfault.com answer Autoriser le SCP mais pas la connexion à l'aide de SSH , une méthode actuellement prise en charge consiste à utiliser rssh, disponible dans le référentiel universe:

Sudo apt-add-repository universe

Sudo apt-get install rssh

Pour autoriser SCP, vous devez supprimer la mise en commentaire de la ligne correspondante dans le fichier /etc/rssh.conf (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 tel que

$ 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

14
steeldriver