Konfigurowanie aliasu dla polecenia SSH w Windows PowerShell

0

W Windows PowerShell:

>ssh -i \Path\To\key.pem [email protected] Działa jak mistrz.

>Set-alias sshalias "ssh -i \Path\To\key.pem [email protected]" zapisuje alias bez błędów.

>sshalias zwraca następujący błąd:

sshalias : The module 'ssh -i ' could not be loaded. For more information, run 'Import-Module ssh -i '.

At line:1 char:1 + sshalias

+ CategoryInfo : ObjectNotFound: (ssh -i \Path\To\Key.pem [email protected]:String) [], CommandNotFoundException

`+ FullyQualifiedErrorId : CouldNotAutoLoadModule`

czego mi brakuje?

Chrisphilton
źródło

Odpowiedzi:

1

Próbujesz wykonać cały ciąg jako polecenie. Polecenie brzmi ssh, potem są parametry po nim. (Oznacza to, że w systemie nie ma pliku wykonywalnego ani skryptu o nazwie „ ssh -i \Path\To\Key.pem "[email protected]"”.)

Rozwiązaniem jest prawidłowe wykonanie polecenia:

ssh -i \Path\To\Key.pem "[email protected]"

Ale alias PowerShell z definicji nie może mieć żadnych parametrów.

Obejściem tego problemu jest użycie funkcji:

function sshalias { ssh -i \Path\To\Key.pem "[email protected]" }
Bill_Stewart
źródło
1

PowerShell nie zezwala, aby alias zawierał parametry polecenia. Zamiast tego, aby owinąć określone parametry polecenia w „alias”, użyj funkcji:

function sshalias {
    ssh -i \Path\To\key.pem [email protected]
}

Być może trzeba podać lub podać niektóre parametry; Nie używam ssh i mam niespójne wyniki z innymi starszymi poleceniami.

Jeff Zeitlin
źródło