Guten Tag Powershell Experten.
Ich versuche aktuell, mit Powershell eine SSH Verbindung zu einer Management-Karte herzustellen. Da ich noch mit Windows Server 2012 R2 arbeite, habe ich das Modul: Posh-SSH nachgeladen.
Soweit so gut, die Verbindung kann hergestellt werden und ich kann sogar meine Befehle absetzten.
Nun wollte ich das ganze automatisieren. Konkret heisst dies, das Skrips soll die SSH Verbindung aufbauen (inkl. Authentifizierung), einen Befehl ausführen und die Verbindung wieder schliessen.
Leider schaffe ich es nicht, eine gültige -KeyFile herzustellen. Ich habe da wohl noch was nicht verstanden.
Ich habe versucht eine Funktion zu schreiben, die dieses File schreiben soll (sehr vereinfachte Variante):
function CreatePasswordFile ($FilePath) { $FilePath = "C:\Temp\keyfile.sec" Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File $FilePath }
Wenn ich diese Funktion ausführe, wird die Datei geschrieben. Mithilfe meines Usernames erstelle ich ein Credential-Objekt.
function CreateCredentialObject ($FilePath, $Username) { $password = cat $FilePath | ConvertTo-SecureString Write-Host "Erstelle Authentifizierungs Objekt" -ForegroundColor Green $cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Username, $password Return $cred }
Somit habe ich (zumindest meiner Meinung nach) alles um die Verbindung herzustellen:
$PasswordFolder = "C:\Temp\computername.sec" $ComputerName = "192.168.xxx.xxx" $Username = "Admin" $FunctionsScript = "C:\Powershell\Funktionen\Credential.ps1" . $FunctionsScript CreatePasswordFile -FilePath $PasswordFolder $Credentials = CreateCredentialObject -FilePath $PasswordFolder -Username $Username New-SSHSession -ComputerName $Computername -Credential $Credentials
Leider wirft Powershell damit einen Fehler:
AUSFÜHRLICH: Using SSH Username and Password authentication for connection. AUSFÜHRLICH: Fingerprint for 192.168.xxx.xxx: (*******************************************) AUSFÜHRLICH: Fingerprint matched trusted fingerprint for host 192.168.xxx.xxx New-SSHSession : Permission denied (password). In D:\Powershell\ServerWakeUp.ps1:42 Zeichen:5 + New-SSHSession -ComputerName $Computername -Credential $Credentia ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : Sicherheitsfehler: (Renci.SshNet.SshClient:SshClient) [New-SSHSession], SshAut henticationException+ FullyQualifiedErrorId : SSH.NewSshSession
Was mache ich falsch. Ich gehe einmal davon aus, dass der Fehler ca. 44 cm vor dem Bildschirm sitzt.
(Ich habe die Script-schnipsel gekürzt und anonymisiert, also nehmt es mir bitte nicht übel, wenn Pfadangaben nicht mehr stimmen oder IP-Nummern und ähnliches unkenntlich gemacht wurden. )
Danke fürs Feedback.
Gruss Hyperkalio