Windows PowerShellの場合:
_>ssh -i \Path\To\key.pem [email protected]
_チャンピオンのように機能します。
_>Set-alias sshalias "ssh -i \Path\To\key.pem [email protected]"
_は、エラーなしでエイリアスを保存します。
_>sshalias
_ は次のエラーを返します:
_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`
_
何が足りないのですか?
その文字列全体をコマンドとして実行しようとしています。コマンドはssh
で、その後にパラメーターがあります。 (つまり、システムには「ssh -i \Path\To\Key.pem "[email protected]"
」という名前の実行可能ファイルまたはスクリプトがありません。)
解決策は、コマンドを適切に実行することです。
ssh -i \Path\To\Key.pem "[email protected]"
ただし、PowerShellエイリアスは、定義上、パラメーターを持つことはできません。
回避策は、代わりに関数を使用することです。
function sshalias { ssh -i \Path\To\Key.pem "[email protected]" }
PowerShellでは、エイリアスにコマンドのパラメーターを含めることはできません。代わりに、コマンドの特定のパラメーターを「エイリアス」にラップするには、次の関数を使用します。
function sshalias {
ssh -i \Path\To\key.pem [email protected]
}
一部のパラメーターを引用符で囲むか、エスケープする必要がある場合があります。私はsshを使用しておらず、他のレガシーコマンドと一貫性のない結果が出ています。