Auf mehreren Windows 2019 Servern hatte ich nun schon das Problem, dass das PowerShell Modul “Posh-SSH” nur eine Fehlermeldung beim Herstellen einer SSH Verbindung liefert. Ich hatte dieses Problem mit Windows Server 2019 und dem Posh-SSH Modul in Version 2.2. Hier ein schneller Tipp, wie das Problem behoben werden kann.
Die Fehlermeldung lautet wie folgt:
New-SSHSession : Die Datei oder Assembly „Renci.SshNet, Version=2016.1.0.0, Culture=neutral,
PublicKeyToken=1cee9f8bde3db106“ oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene
Datei nicht finden.
Die Ursache für diesen Fehler hängt mit der Datei “Renci.SshNet.dll” zusammen. Verschiedene Programme bringen unterschiedliche Versionen der DLL mit. Die Datensicherungssoftware Veeam ist beispielsweise eines dieser Programme, auch im Windows Verzeichnis finden sich mit unter mehrere Versionen der “Renci.SshNet.dll” Datei.
Das PowerShell Modul Posh-SSH scheint mit mehreren Versionen der DLL so seine Probleme zu haben und es kommt zu dem oben genannten Fehler. Posh-SSH bringt ebenfalls eine Version der Datei Renci.SshNet.dll mit. Die Datei findet sich im Verzeichnis “C:\Program Files\WindowsPowerShell\Modules\Posh-SSH\2.2\Assembly”:
Um das Problem zu beheben, muss Posh-SSH genau diese Version der Datei laden, als schnellen Workaround, kann daher die Datei umbenannt werden. In diesem Fall habe ich die Datei zu “Renci.SshNet2.dll” umbenannt:
In der PowerShell Modul Datei für Posh-SSH muss nun der neue Name der Datei eingesetzt werden. Die Modul Datei findet sich unter “C:\Program Files\WindowsPowerShell\Modules\Posh-SSH\2.2” und heißt “Posh-SSH.psd1:
In dieser Datei kann nun mittels “Suchen und Ersetzen” der Name der Datei “Renci.SshNet” gegen “Renci.SshNet2” ausgetauscht werden:
Sobald die PowerShell einmal geschlossen oder das Modul neu geladen wurde, klappen auch die SSH Verbindungen wieder.
Vielleicht hilft dies ja dem ein oder anderem weiter.
Falls jemand auch dieses Problem hat oder hatte und eine elegantere Methode kennt, ohne dass die Modul Datei geändert werden muss, würde ich mich um eine Nachricht freuen. Problematisch an dieser Lösung ist, dass die Änderungen erneut ausgeführt werden müssen, wenn das Modul aktualisiert wird. Daher wäre es schön, wenn es noch eine andere Lösung gebe.