'\'文字がエスケープされているか、SSHキーパスワードの一部ですか?

'\'文字がエスケープされているか、SSHキーパスワードの一部ですか?

私がするなら:

ssh-keygen -N password123\$ -f bobskeys

\エスケープ文字ですか$、それともパスワードの一部になりますか?

または、bashパスワードの値を取得する前にエスケープを実行しますか?ssh-keygen

$この役割から抜け出すべきですか?

Centos 5.5 x64とbash 3.2.25を実行しています。

答え1

入力するとき:

ssh-keygen -N password123\$ -f bobskeys

シェルはパラメータを取り、-N password123$ -fssh-keygenを実行しますbobskeys

パラメータとして渡すには、一重引用password123\$符で囲む必要があります。

ssh-keygen -N 'password123\$' -f bobskeys

またはバックスラッシュバックスラッシュ:

ssh-keygen -N password123\\$ -f bobskeys

それ以外の場合、ssh-keygenプロセスにバックスラッシュが表示されません。

答え2

ssh-keygenマニュアルページから:

パスワードは、一連の単語、句読点、数字、スペース、または所望の単語文字列を含む構文であり得ることを除いて、パスワードと類似している。良い暗号文は長さが10〜30文字で、単純な文章ではないか簡単に推測することはできません(英語の散文は、1文字あたりのエントロピーが1〜2ビットにすぎず、非常に劣った暗号文を作成します)、大文字と小文字、数字が混在しています。と英数字以外の文字。

-Nパラメータは新しいパスワードを生成するため、この記号\は解釈の一部です。

関連情報