Ssh

De BlaxWiki
Aller à la navigationAller à la recherche

Ssh Chroot

On peut avoir facilement un user chroot en ssh / sftp. Rajouter dans le fichier /etc/ssh/sshd_config

Match user userachrooter
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp

Le répertoire du user doit appartenir au user root et le group au group du user. Le chmod doit obligatoirement être en 755 ou 751 sur le répertoire.

http://www.debian-administration.org/articles/590

Ssh sans mot de passe

Générer sur le serveur local les clés ssh (ssh-keygen -t dsa), copier le contenu de /home/user1/.ssh/id_dsa.pub sur le serveur distant dans /home/user2/.ssh/autorized_keys.
Puis depuis le serveur local ssh user2@w.x.y.z ; la connexion se fera dans demander de mot de passe

Ssh avec restriction de commande

1er cas

Sur le serveur où l'on veut faire la restriction, rajouter dans le .ssh/autorized_keys :
from="w.x.y.z/a",no-X11-forwarding,no-agent-forwarding,no-pty,command="..." ssh-rsa AAAAB3NzaC1yc2EAAAABIwAA...."
On peut autoriser cette clé publique que pour l'ip w.x.y.z et la commande suivante.

2ème cas

Si le user ne doit faire que du sftp/scp & rsync, installer rssh (lui mettre comme shell rssh) et dans /etc/rssh.conf :
allowscp
allowsftp
allowrsync

Rsync over ssh

Commande de base

rsync -avzn -e ssh tof benbis@w.x.y.z:/home/benbis/ (le -n permet de simuler)

Cela va copier le répertoire tof local dans le répertoire /home/benbis/ distant via ssh. Cela évite de faire un scp et d'avoir le daemon rsync qui tourne sur le serveur distant 
(rsync doit bien sur être installé sur le serveur distant)

Tunnel ssh

ssh -L <port_local>:<hote_cible>:<port_destination> user@server -pXX

	
ssh -L 9089:localhost:3389 xhark@109.238.2.200 -p443

Cela aura pour effet de rediriger toutes les requêtes tapant en local sur le port 9089 de votre machine vers le port 3389 de la machine distante. Dans cet exemple, il s’agit d’une
 connexion sur un serveur Windows ayant OpenSSH écoutant sur le port 443. Le but est de réaliser un tunnel SSH pour prendre le contrôle en bureau à distance (RDP) sur le port par 
défaut 3389.

Tunnel SSH avec translation de port dynamique (dynamic forwarding) : ssh -D <port_local> <utilisateur>@<hote_cible> -pXX

	
ssh -D 8080 xhark@109.238.2.200 -p443
Dans cet exemple nous ouvrons un tunnel dynamique qui permettra de surfer à travers le tunnel SSH via un proxy de type Socks.