**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** # Howto SSH : Secure SHell ## Administration SSH Obtenir l'empreinte de la clé publique (RSA) du serveur : ~~~ $ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub ~~~ De même pour la clé DSA : ~~~ $ ssh-keygen -lf /etc/ssh/ssh_host_dsa_key.pub ~~~ Regénérer les clés RSA/DSA du serveur (exemple sous Debian) : ~~~ # mv /etc/ssh/{moduli,*key*} /tmp/ssh/ # dpkg-reconfigure openssh-server Creating SSH2 RSA key; this may take some time ... Creating SSH2 DSA key; this may take some time ... Restarting OpenBSD Secure Shell server: sshd. ~~~ Recharger le démon _sshd_ sous Debian sans utiliser le script init.d : ~~~ # start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd ~~~ Redémarrer le démon _sshd_ sous Debian sans utiliser le script init.d : ~~~ # start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/sshd.pid # start-stop-daemon --start --quiet --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd ~~~ Recharger le démon _sshd_ sous OpenBSD : ~~~ # kill -HUP `cat /var/run/sshd.pid` ~~~ ## SFTP chroot Voici un ensemble de commandes pouvant être utilisées pour mettre en place un accès SFTP pour un ou plusieurs utilisateurs, qui n'auront accès qu'à une vue limitée de l'arborescence du système : ~~~ # Répertoire dans lequel SSHD va se chrooter mkdir /home/sftp chmod 755 /home/sftp # Les utilisateurs du groupe sftp (ici account1) disposeront de l'accès SFTP restreint groupadd sftp useradd -g sftp -d /account1 account1 mkdir /home/sftp/account1/ chown account1:sftp /home/sftp/account1/ chmod 700 /home/sftp/account1/ ~~~ Dans le fichier /etc/ssh/sshd_config : ~~~ Subsystem sftp internal-sftp Match group sftp ChrootDirectory /home/sftp X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp ~~~ ## Clé SSH Pour autoriser une clé SSH en limitant les accès via _.ssh/authorized_keys_ : ~~~ no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa XXXXX commentaires ~~~ ## SFTP Only Mettre shell /usr/lib/sftp-server pour l'utilisateur et s'assurer que ce shell est bien présent dans /etc/shells ~~~ # usermod -s /usr/lib/sftp-server userna # echo '/usr/lib/stfp-server' >> /etc/shells ~~~ ## VPN over SSH Côté serveur SSH : - Ajouter "PermitTunnel yes" dans la config ssh - sysctl -w net.ipv4.ip_forward=1 - iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Puis se connecter de root vers root : ~~~ # ssh -w 42:42 ssh.example.com ~~~ On a ensuite un périphérique "tun42" utilisable des 2 côtés à configurer. Serveur SSH : ifconfig tun42 172.17.18.2/24 En local : ifconfig tun42 172.17.18.1/24 On peut alors router au niveau IP : ip route add 8.8.8.8/32 via 172.17.18.2 dev tun42