如果我做:
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
参数是创建一个新的密码短语,因此该\
符号是释义的一部分。