`\` 字符是否正在转义或成为我的 ssh 密钥密码的一部分

Kev*_*Kev 2 bash escape-characters

如果我做:

ssh-keygen -N password123\$ -f bobskeys
Run Code Online (Sandbox Code Playgroud)

\转义$字符还是成为密码的一部分?

或者更确切地说,bashssh-keygen获取密码值之前会进行任何转义吗?

我需要逃避这个$角色吗?

我正在运行 Centos 5.5 x64 和 bash 3.2.25

Mic*_*jer 5

当你输入:

ssh-keygen -N password123\$ -f bobskeys
Run Code Online (Sandbox Code Playgroud)

shell 将使用参数-N password123$ -f和执行 ssh-keygen bobskeys

如果要password123\$作为参数传递,则需要单引号:

ssh-keygen -N 'password123\$' -f bobskeys
Run Code Online (Sandbox Code Playgroud)

或反斜杠反斜杠:

ssh-keygen -N password123\\$ -f bobskeys
Run Code Online (Sandbox Code Playgroud)

否则ssh-keygen进程将看不到反斜杠。