Accueil > Blog > SSH

Créer un serveur SFTP sans accès shell

Un serveur FTP, c’est bien, mais un serveur SFTP c’est bien mieux car tout passe par une liaison SSH, donc cryptée. L’inconvénient, c’est que le serveur openssh-server utilise les comptes utilisateurs Unix, donc les utilisateurs peuvent avoir accès à l’ensemble du disque dur (suivant leurs droits), et même se connecter à un shell.

Installation de MySecureShell

Il faut ajouter une source APT au fichier /etc/apt/sources.list :

deb http://mysecureshell.free.fr/repository/index.php/debian testing main

Et ajouter la clé du dépot :

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys E328F22B; gpg --export E328F22B | sudo apt-key add -
sudo apt-get update
sudo apt-get install mysecureshell

Ajout d’un utilisateur

sudo adduser --home /home/toto --shell /bin/MySecureShell toto

Impossible de transférer des fichiers, erreur exitcode 10

En cas de message d’erreur exitcode 10 lors de la copie de fichiers, il faut augmenter le nombre de connexions autorisées en éditant le fichier /etc/ssh/sftp_config :

LimitConnectionByUser 3

Sources

15/04/2011 — Mots-clés : , , , — Classé dans Geek1 commentaire

Installer un tunnel SSH

Si vous êtes sur un réseau qui est surveillé ou limité, il peut être utile d’avoir accès à un serveur situé « à l’extérieur » et de créer un tunnel SSH afin de s’en servir comme d’un serveur proxy. L’avantage est que tout le trafic réseau est crypté jusqu’au serveur proxy et que personne ne peut voir, ni filtrer ce qui y passe. Ceci va être très utile en France car, grâce à la loi LOPPSI, l’Internet Français va prochainement ressembler à celui de la Chine.

Côté serveur

Il faut tout simplement installer OpenSSH (qui a de fortes chances d’être déjà installé) :

sudo apt-get install ssh

Si le réseau de votre boulot bloque le port SSH (ce qui est fort possible), il faudra changer le port utilisé par le serveur en éditant le fichier /etc/ssh/sshd_config (en utilisant le port 443 par exemple, ou tout autre port non utilisé) :

# What ports, IPs and protocols we listen for
Port 443

Et c’est tout, le serveur est maintenant prêt à faire suivre les requêtes TCP d’un client SSH.

Côté client

Client MacOS

Le petit utilitaire SSHTunnel est parfait pour cela et assez simple à configurer.

Client Linux

Il existe un outil Gnome pour configurer graphiquement les tunnels SSH sur une machine Linux : gstm (SSH Tunnel Manager), qui se contente de lancer la commande suivante :

ssh -N -f user@serveur -p 443 -D9999

Toutes les requêtes envoyées vers localhost:9999 seront maintenant encapsulées dans des paquets SSH et redirigées via serveur:443. Les options -N -f servent à éviter d’ouvrir la console SSH distante.

Client Windows

Sous Windows, il y a le célèbre PuTTY, et un tutorial assez simple pour le configurer pour une utilisation avec un tunnel.

Pour plus d’informations

Vous pouvez trouver plus d’informations sur ces différents liens :

10/02/2011 — Mots-clés : , — Classé dans GeekEcrire un commentaire

Close a remote SSH session

To close all SSH sessions of a given user :

skill -KILL -u username

You can list connected users with the who command.

05/03/2010 — Mots-clés : , — Classé dans GeekEcrire un commentaire

Mount a distant directory over SSH

You need to install the sshfs package :

sudo apt-get install sshfs

Then, just create a local directory and mount your distant one inside :

mkdir ~/my_distant_directory
sshfs [user@]host:[dir] ~/my_distant_directory

To umount it :

fusermount -u ~/my_distant_directory

19/11/2009 — Mots-clés : , — Classé dans GeekEcrire un commentaire

Secure your SSH transactions with keys

To automate rsync backups between 2 Linux machines, you have to use SSH keys. These keys allow you to connect through SSH without typing any password.

First, you need to generate public key on the client (only for the current user). Do not answer to the following questions :

ssh-keygen -t dsa -b 1024

Now, you have 2 generated files for the current user : ~/.ssh/id_dsa for the private key and ~/.ssh/id_dsa.pub for the public one. Then, you must copy the public key to the server authorized keys’s list and that’s all !

ssh-copy-id -i ~/.ssh/id_dsa.pub "-p 22 distant_user@server"

01/11/2009 — Mots-clés : , — Classé dans GeekVoir les 2 commentaires

Deactivate SSH timeout

To deactivate sshd timeout, just add these lines at the end of your /etc/ssh/sshd_config :

KeepAlive yes
ClientAliveInterval 60

And don’t forget to restart the daemon :

sudo /etc/init.d/ssh restart

31/10/2009 — Mots-clés : , — Classé dans GeekEcrire un commentaire