'\' 字符是否转义或成为我的 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

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

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

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

或反斜杠反斜杠:

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

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

答案2

ssh-keygen手册页:

密码短语与密码类似,只不过它可以是包含一系列单词、标点符号、数字、空格或任何您想要的字符串的短语。好的密码短语长度为 10-30 个字符,不是简单的句子或容易被猜到(英语散文每个字符只有 1-2 位熵,并且提供非常糟糕的密码短语),并且包含大小写字母、数字的混合,和非字母数字字符。

由于-N参数是创建一个新的密码短语,因此该\符号是释义的一部分。

相关内容