Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
linux:ssh [18-01-2016 10:21] edmc73 [autossh : créer une connexion persistante] |
linux:ssh [06-03-2019 14:24] edmc73 [Chrooter les utilisateurs en SFTP] |
||
---|---|---|---|
Ligne 27: | Ligne 27: | ||
> Le man en français http:// | > Le man en français http:// | ||
+ | |||
+ | Pour éviter de perdre sa session lors d'une interruption réseau, on peut rajouter | ||
+ | |||
+ | ClientAliveCountMax 10 | ||
+ | ClientAliveInterval 60 | ||
+ | TCPKeepAlive yes | ||
+ | |||
+ | ce qui permet de tester si le client est en vie toutes les 60 secondes jusqu' | ||
==== Si la demande de Password est longue à s' | ==== Si la demande de Password est longue à s' | ||
Ajouter cette option dans le fichier de config. | Ajouter cette option dans le fichier de config. | ||
Ligne 181: | Ligne 189: | ||
source => http:// | source => http:// | ||
- | ===== Chrooter les utilisateurs en SFTP / SSH ===== | + | ==== Performance ==== |
+ | |||
+ | Un très bon article sur les performances sshfs / nfs => http:// | ||
+ | |||
+ | sshfs -o Ciphers=arcfour, | ||
+ | |||
+ | ===== Chrooter les utilisateurs en SFTP ===== | ||
Voir -> http:// | Voir -> http:// | ||
Ligne 205: | Ligne 219: | ||
</ | </ | ||
- | Pour chrooter toto, son répertoire home doit appartenir à root | + | Pour chrooter toto, son répertoire home doit appartenir à root et être en 755 |
< | < | ||
ls -l | ls -l | ||
Ligne 211: | Ligne 225: | ||
chown root toto | chown root toto | ||
+ | chmod 755 toto | ||
ls -l | ls -l | ||
drwxr-xr-x | drwxr-xr-x | ||
Modifier la config du serveur ssh : | Modifier la config du serveur ssh : | ||
+ | vi / | ||
Pour limiter un utilisateur au sftp | Pour limiter un utilisateur au sftp | ||
Ligne 231: | Ligne 247: | ||
ChrootDirectory %h | ChrootDirectory %h | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== Chrooter les utilisateurs en SSH ===== | ||
+ | --- source: https:// | ||
+ | |||
+ | Installation du paquet bash-static | ||
+ | |||
+ | #apt-get install bash-static | ||
+ | |||
+ | Pour faciliter l' | ||
+ | |||
+ | #addgroup sshchroot | ||
+ | |||
+ | Création de l' | ||
+ | |||
+ | #adduser test | ||
+ | #usermod -d / test | ||
+ | #usermod -s / | ||
+ | #adduser test sshchroot | ||
+ | |||
+ | Mettre l' | ||
+ | |||
+ | #chown root: /home/test | ||
+ | |||
+ | Petit script qui vous activera des commandes supplémentaire pour le user test | ||
+ | |||
+ | #cd /home/test | ||
+ | #vim create.sh | ||
+ | |||
+ | <file bash create.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | mkdir -p {bin, | ||
+ | mknod dev/null c 1 3 | ||
+ | mknod dev/zero c 1 5 | ||
+ | chmod 0666 dev/ | ||
+ | |||
+ | TMPFILE1=./ | ||
+ | TMPFILE2=./ | ||
+ | #Definition des commandes que vous souhaitez activer | ||
+ | APPS="/ | ||
+ | |||
+ | for app in $APPS; | ||
+ | if [ -x $app ]; then | ||
+ | app_path=`dirname $app` | ||
+ | if ! [ -d .$app_path ]; then | ||
+ | mkdir -p .$app_path | ||
+ | fi | ||
+ | cp -p $app .$app | ||
+ | ldd $app >> ${TMPFILE1} | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | for libs in `cat ${TMPFILE1}`; | ||
+ | frst_char=" | ||
+ | if [ " | ||
+ | echo " | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | for lib in `cat ${TMPFILE2}`; | ||
+ | mkdir -p .`dirname $lib` > /dev/null 2>&1 | ||
+ | cp $lib .$lib | ||
+ | done | ||
+ | |||
+ | cp -r / | ||
+ | |||
+ | rm -f $TMPFILE1 | ||
+ | rm -f $TMPFILE2 | ||
+ | </ | ||
+ | |||
+ | Lancez le script dans /home/test | ||
+ | |||
+ | # | ||
+ | |||
+ | Editez le fichier de conf ssh pour enfin chrooter la connexion | ||
+ | |||
+ | #vim / | ||
+ | < | ||
+ | Match Group test | ||
+ | #%u permet de se placer automatiquement dans le home du user | ||
+ | ChrootDirectory /home/%u | ||
+ | AllowTCPForwarding no | ||
+ | X11Forwarding no | ||
+ | </ | ||
+ | |||
+ | Petit restart du service ssh | ||
+ | |||
+ | # service ssh reload | ||
+ | (on ne sait jamais) | ||
+ | #service ssh restart | ||
+ | |||
+ | Test avec le user test | ||
+ | |||
+ | < | ||
+ | I have no name!@x.x.x.x:/ | ||
+ | I have no name!@x.x.x.x:/ | ||
+ | total 28 | ||
+ | drwxrwxr-x 2 0 1003 4096 Mar 15 15:35 bin | ||
+ | -rwxr-xr-x 1 0 1003 886 Mar 15 15:21 create.sh | ||
+ | drwxr-xr-x 2 0 1003 4096 Mar 15 15:23 dev | ||
+ | drwxr-xr-x 2 1001 1003 4096 Mar 15 15:48 lala | ||
+ | drwxr-xr-x 4 0 1003 4096 Mar 15 15:23 lib | ||
+ | drwxr-xr-x 2 0 1003 4096 Mar 15 15:23 lib64 | ||
+ | drwxr-xr-x 4 0 1003 4096 Mar 15 15:23 usr | ||
+ | </ | ||
+ | |||
+ | Je ne peux pas editez dans home de test\\ | ||
+ | C'est normal seul root doit être propriétaire. Les droits plus permissifs sont les suivants: | ||
+ | chmod 755 si vous donnez des trop permissifs le ssh chrooter ne fonctionnera pas. Dans ce cas créer un répertoire dont l' | ||
+ | exemple: | ||
+ | |||
+ | #mkdir / | ||
+ | #chown test:test / | ||
===== autossh : créer une connexion persistante ===== | ===== autossh : créer une connexion persistante ===== | ||
Ligne 248: | Ligne 378: | ||
La commande autossh serait | La commande autossh serait | ||
- | autossh -M 0 -q -f -N -oServerAliveInterval=60 -oServerAliveCountMax=3 -L 3307: | + | |
Pour que cette connexion se lance au démarrage de la machine, placer cette commande dans le fichier **/ | Pour que cette connexion se lance au démarrage de la machine, placer cette commande dans le fichier **/ | ||
+ | |||
+ | ===== Gérer plusieurs clés ===== | ||
+ | |||
+ | Les clés se trouvent en général dans | ||
+ | cd ~/.ssh/ | ||
+ | |||
+ | Il y a la clé privé **id_dsa** et la clé publique **id_dsa.pub**. Admettons que vous voulez accéder à un serveur configuré pour se connecter avec une clé spécifique que l'on vous a fourni. Par exemple **id_dsa_serveur** et **id_dsa_serveur.pub** | ||
+ | |||
+ | Placez ces 2 fichiers dans votre répertoire **.ssh** | ||
+ | |||
+ | La commande pour se connecter en ssh avec cette clé est | ||
+ | ssh -i ~/ | ||
+ | |||
+ | On peut aussi créer un fichier de config pour automatiser tout ça soit dans son répertoire personnel, soit au niveau de la config du serveur ssh | ||
+ | vi ~/ | ||
+ | vi / | ||
+ | |||
+ | On peut ensuite écrire ceci | ||
+ | Host serveur.com | ||
+ | IdentityFile ~/ | ||
+ | |||
+ | Il existe une multitude de paramètre dans ce fichier de config disponible ici => http:// | ||
+ | ===== Clé DSA non supportée ===== | ||
+ | |||
+ | This is a result of upgrading to OpenSSH 7.0. As the release notes for OpenSSH 7.0 say, " | ||
+ | |||
+ | The solution is to add the following line to ~/ | ||
+ | |||
+ | PubkeyAcceptedKeyTypes=+ssh-dss | ||
+ | |||
+ | If the server is using OpenSSH 7.0 or newer, you'll also need to add this line to / | ||
+ | |||
+ | Alternatively, | ||
+ | |||
+ |