Les Crash-Devs d'un Passionné

Utiliser SSH dans PowerShell

/Catégorie/windows

Temps de lecture : 2 minutes

Il existe une librairie .net, SSH.net, qui permet d'implémenter SSH directement dans Windows. Le module que nous allons voir aujourd'hui utilise cette librairie dans PowerShell. Cela va nous permettre de nous passer de Putty par exemple.

Récupérez le zip SSH-Session et une fois déarchivé le mettre dans un des dossiers listé par cette commande

$env:PSModulePath -split ';'

Lancez ensuite

Get-ExecutionPolicy

Si le mode est restricted il faut changer le mode en Bypass sinon on ne pourra pas importer le module SshSession

Set-ExecutionPolicy -ExecutionPolicy Bypass

Pour se connecter

New-SshSession -Computer 192.168.1.123 -Port 22 -User david

Pour lancer une commande sur la machine distante

Invoke-SshCommand -Computer 192.168.1.123 -Command 'uname -a' -q

Ou alors pour entrer dans une session de la machine

Enter-SshSession -ComputerName 192.168.1.123

Le souci est que la pseudo allocation tty n'est pas possible. En effet, quand je saisie dans mon terminal connecté au serveur

sudo shutdown -r now

J'obtiens

pas de tty présent et pas de programme askpass spécifié

TTY signifie TeleTYpewriter ou simplement un terminal... En effet dans le monde Unix, tty est une commande pour afficher l'emplacement de ce terminal.

Heureusement depuis quelsques mois Microsoft implémente OpenSSH pour Windows, rendu disponible sous GitHub

Il vous suffit ensuite d'utiliser SSH comme cela

ssh 192.168.1.123 -p 22 -l david

Et maitenant libre à vous de lancer des commandes en sudo !