Configurando um alias para o comando SSH no Windows PowerShell

0

No Windows PowerShell:

>ssh -i \Path\To\key.pem [email protected] funciona como um campeão.

>Set-alias sshalias "ssh -i \Path\To\key.pem [email protected]" salva o alias sem erros.

>sshalias retorna o seguinte erro:

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'

O que estou perdendo?

    
por chrisphilton 27.02.2017 / 19:56

2 respostas

1

Você está tentando executar toda a string como um comando. O comando é ssh , depois há parâmetros após ele. (Isto é, não existe um executável ou script no seu sistema chamado " ssh -i \Path\To\Key.pem "[email protected]" ".)

A solução é executar o comando corretamente:

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

Mas um alias do PowerShell não pode, por definição, ter parâmetros.

A solução alternativa é usar uma função:

function sshalias { ssh -i \Path\To\Key.pem "[email protected]" }
    
por 27.02.2017 / 20:00
1

O PowerShell não permite que um alias inclua parâmetros no comando. Em vez disso, para envolver parâmetros específicos para um comando no 'alias', use uma função:

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

Você pode precisar citar ou escapar de alguns dos parâmetros; Eu não uso ssh e tive resultados inconsistentes com outros comandos legados.

    
por 27.02.2017 / 20:01