{ * info-rmatique ! }

OpenSSH

SRV ssh
sudo apt update/upgrade
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh (sudo service sshd enable)
sudo systemctl status ssh (sudo service sshd status)
ip a (si non fixéé…)

  • Connexion depuis client linux
    ssh user@IP_srv (connexion mdp user)
    (pour pouvoir me connecter en ssh avec le compte root, j’ai du changer le fichier /etc/ssh/sshd_config en mettant : exitPermitRootLogin yes systemctl restart sshd)
    ssh-keygen (-b 8192) (depuis client vers srv)
    ssh-copy-id (-p 222) user@IP_srv
  • Connexion SSH via PuTTY
    Ip debian / Port 22 / connection type SSH
  • Connexion SSH via OpenSSH client (Win)
    Installation OpenSSH client:
    Ouvrez PowerShell en mode administrateur et entrez la commande suivante pour installer OpenSSH client :
    Add-WindowsCapability -Online -Name OpenSSH.Client~~0.0.1.0
  • Verifier que l’installation est ok avec Get-WindowsCap…+ meme commande
    Ouvrez l’invite de commande et saisissez la commande suivante pour vous connecter via SSH au serveur :
    ssh utilisateur@adresseIPserveur
  • Configurez le fichier sshd_config :
    cp /etc/ssh/sshd_conf /etc/ssh/sshd_conf.bkp
    sudo nano /etc/ssh/sshd_config
    modif port d’ecoute:
    #Port 22
    Port 5555
    modif config d’authentification:
    # Authentification
    Protocol 2
    AllowUsers tintin boby@romarin #(tintin depuis partout, boby depuis le poste romarin)
    AllowGroups Gp_SSH
    DenyUsers (Groups) user1 user2@poste1
    LoginGraceTime 30 #modif temps pous se logger
    PermitRootLogin no #interdir accès Root
    Utilisation de clefs privées/publiques :
    PasswordAuthentication yes -> no #interdir acces par mdp
    RSAAuthentication yes
    PubkeyAuthentication yes

sudo systemctl restart sshd

  • Test des commandes avec nlles config:
    port 5555
    ssh –p5555 user@adresseIP
    version 1 SSH interdite
    ssh -1 user@adresseIP
    pas de connexion pour root
    ssh –p5555 root@adresseIP
    temps de connexion, autres users…
  • Voir les log sur Debian12
    sudo journalctl -u ssh
    ou installer rsyslog
    voir les echecs de connexion
    grep « Invalid » /var/log/auth.log
  • Gestion des clés SSH sous Linux
    Configurer l’authentification par clé SSH implique la génération d’une paire de clés sur votre machine locale (la clé privée reste avec vous et ne doit jamais être partagée) et l’ajout de la clé publique au fichier ~/.ssh/authorized_keys sur le serveur distant. Pour générer la clé et la transférer à un serveur Linux via SSH, il suffit d’entrer les commandes suivantes dans votre terminal :
    ssh-keygen
    OU mieux : ssh-keygen -b 4096
    ssh-copy-id utilisateur@adresse_du_serveur
    Exemple d’utilisation plus complète :
    ssh-copy-id -p 222 -i ~/.ssh/id_rsa.pub user@remote-host
    donner droits testreints à fichier ~/.ssh/authorized_keys :
    chmod 700 ~/.ssh -Rf
  • gestion des clés SSH Windows powershell
    pour vérifier si openssh est installé sur Windows :
    parametres -> systeme -> fonctionnalites facultatives -> openssh
    sinon -> « ajouter fonctionnalite »
    générer clé SSH:
    ssh-keygen -t ed25519
    ls .SSH
    activation manuelle des services ssh-agent:
    Get-Service ssh-agent | Set-Service -StartupType Manual
    activation automatique
    Get-Service ssh-agent | Set-Service -StartupType Automatic
    démarrer service:
    Start-Service ssh-agent
    vérifier état:
    Get-Service ssh-agent
    charger fichiers de clés dans ssh-agent:
    SSH-add C:\Users\encan.ssh\id_ed25519
  • Transfert via SCP / SFTP
    scp (-P XX) test.txt anto@adIPsrv:~ (ou autre répertoire)
    sftp –> fileZilla
  • Envoi d’un fichier via SSH en utilisant SCP
    scp /home/mickael/data/Ficher2 root@192.168.10.131:/var/www/

télécharger un fichier du serveur Linux vers la Machine mickael alors que l’on se trouve sur cette même Machine Mickael:
scp root@192.168.10.131:/var/www/Fichier2 /home/mickael/data/
Ici, on retrouve exactement la même construction que notre précédente commande mais nous avons inversé l’ordre des chemins. Cela parce que la source doit toujours se trouver avant la destination.

copier un répertoire via SCP, les fichiers de ce répertoire seront également copiés et réorganisés de la même façon chez la machine cible. Il faut pour cela ajouter l’option « -r »:
scp -r /home/mickael/data/ root@192.168.10.131:/var/www/

Quand le port SSH par défaut (22) est changé, il faut spécifier à SCP le port sur lequel aller discuter, via l’option « -P »:
scp -r -P 7256 /home/mickael/data/ root@192.168.10.131:/var/www/

Si votre client est un Windows, vous pouvez utiliser le logiciel WinSCP.  » Protocole de fichier » –> « SCP »
[OU Posh-SSH, le Module Powershell pour faire du SCP
Install-Module -Name Posh-SSH
$credential = Get-Credential
Get-SCPFile -ComputerName ‘mylinuxVm’ -RemoteFile /home/admin/myfile.txt -Credential $credential -LocalFile c:tempmyfile.txt]
Nous pouvons le faire en extrayant le contenu de notre clé SSH publique sur notre ordinateur local et en l’acheminant par une connexion SSH vers le serveur distant. D’autre part, nous pouvons nous assurer que le répertoire ~/.ssh existe bien sous le compte que nous utilisons pour ensuite générer le contenu que nous avons transmis dans un fichier appelé authorized_keys dans ce répertoire.
Nous allons utiliser le symbole de redirection >> pour ajouter le contenu au lieu d’écraser le contenu précédent. Cela nous permettra d’ajouter des clés sans détruire les clés précédemment ajoutées :
cat ~/.ssh/id_rsa.pub | ssh username@remote_host « mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys »
chmod 700 ~/.ssh -Rf

  • Transfert SFTP : Secure FTP
    fichier de configuration d’OpenSSH :
    subsystem sftp /usr/lib/openssh/sftp-server
    Sous Linux, en tant que client, la commande « sftp » s’utilise exactement comme la commande « scp ».
    WinSCP permet également de gérer les transferts en SFTP.
  • Transfert SFTP : Secure FTP
    SSHFS va nous permettre de monter un répertoire d’une machine Linux sur une autre –> permettre à la machine cliente de voir un répertoire en temps réel alors que celui-ci se situe sur la machine distante. Si une modification est effectuée sur ce répertoire, le client le verra instantanément et il pourra agir dessus comme s’il s’agissait d’un répertoire local. Dans le cas de SSHFS, l’échange qui permet la lecture et l’écriture sur le répertoire est fait sur le réseau en utilisant le protocole SSH.
    apt-get install sshfs
    mkdir /mnt/data
    sshfs mickael@192.168.10.1:/home/mickael/data /mnt/data
    Attention, il ne s’agit pas d’une copie, si je démonte le répertoire /mnt/data, les données ne seront plus présentes.
    commande « mount » : visualiser les points de montage présents.
    umount /mnt/data
  • Pour se connecter à un serveur Linux depuis un PC avec WIndows, il faut remplacer la commande ssh-copy-id par la commande PowerShell suivante :
    Get-Content $env:USERPROFILE.ssh\id_rsa.pub | ssh username@Serveur_IP « cat >> .ssh/authorized_keys »

Pour DP C3, j’ai généré une pair de clé avec putygen, j’ai copié la clé publique dans fichier que j’ai envoyé au serveur via scp. J’ai enregistré la clé privée dans .ssh du client. Puis pour connexion, après avoir entrée l’IP, je clic sur SSH, Auth, cred et je browse la clé privée –> open.
tuto :
Sous « Parameter » et « Number of bits in a generated key » valeur minimale de 2048.
Sous « Actions », puis cliquez sur « Generate ».
cliquez sur « Save the generated key » sous « Actions ».
Vous pouvez enregistrer la clé privée sur votre bureau en utilisant le nom « id_rsa.ppk ».
Le champ sous « Key » ou « Public key for pasting into OpenSSH authorized_keys file: » contient la clé publique.
Clé publique à coller dans le fichier « authorized_keys » OpenSSH
Lancez PuTTY pur vous connecter au serveur distant.
nano ~/.ssh/authorized_keys
Collez la clé publique déjà copiée dans le fichier authorized_keys
chmod 600 ~/.ssh/authorized_keys
Fermer putygen et puty.
Sous « Session » (Session), renseignez le nom de l’hôte ou l’adresse IP du serveur distant correspondant.
Suivez ce chemin : « Connexion » > « SSH » > « Auth ». Cherchez la clé privée « id_rsa.ppk

  • Sécurisation : utilisation de fail2ban