SSH ユーザー名の特殊文字がリモート装置に渡されませんでした。

SSH ユーザー名の特殊文字がリモート装置に渡されませんでした。

私はこの問題について頭を下げようとしました。 Bing、Google、Yahooは私の質問を理解していないようです。

D5P$3rLinuxサーバーからルーターに転送する必要があるユーザーがいます。

私は以下を試しました。

ssh -c 3des-cbc D5P$3r@Router
ssh -l D5P$3r Router 
ssh -c 3des-cbc -o User=D5P$3r Router 

とにかく最終結果は次のとおりです。

D5Pr@Router's password:

私はエンジニアリングの分野にいないので、私のアイデアは無視されるので、このユーザーが使用された理由もあります。

$3デフォルトでは、ルーターのユーザー名をどのように渡すことができるかを調べています。

Linux サーバーは Red Hat Enterprise 7.6 です。

答え1

$33番目の位置引数です(通常、現在のシェルまたはシェル関数に提供されている3番目の引数)。文字列がD5P$3r引用されていないため、シェルは$33番目の位置引数の値に展開されます。値が存在しないか空の場合、文字列はsshasに渡されますD5Pr

シェルの拡張を防ぐには、$3文字列の周りに一重引用符を使用する必要があります。たとえば、次のようになります。

ssh -c 3des-cbc 'D5P$3r@Router'

...または脱出$

ssh -c 3des-cbc D5P\$3r@Router

関連情報