为什么 ssh-keygen 的 -f 标志无法遵循符号链接?
Why -f flag of ssh-keygen fails to follow symlink?
我的 ~/.ssh
目录是指向 /somewhere/else/.ssh/
的符号链接
现在,下面的工作完美了;并且 demo 密钥最终在 /somewhere/else/.ssh/Official
处创建,正如预期的那样。
export NewUser="Sam"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ~/.ssh/Official/demo
然而,当 -f
通过变量提供相同的路径时,它会失败并出现以下错误:
Saving key "~/.ssh/Official/demo" failed: No such file or directory
export NewUser="Darsh"
export SSHKey_Path="~/.ssh/Official/demo"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ${SSHKey_Path}
我尝试了几种方法来提供这个变量,但都没有用。我也无法在文档中找到有关变量的任何信息。 我想知道为什么 -f
只有在通过变量传递时才无法遵循符号链接路径?有解决方法吗? 我不确定,但是,是否建议将其引起注意 here?
编辑:调试后更新问题。原题已保存如下:
我知道 ssh-keygen
有一个标志 -f
来指定 input_keyfile
- 使用它,一次可以在自定义位置创建一个具有自定义名称的密钥。但是,如果 input_keyfile
是一个变量,这将失败。
如何将密钥路径作为变量提供给 ssh-keygen?
以下是来自较大代码的过度简化的片段:
这非常有效:
export NewUser="Sam"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ~/.ssh/Official/demo
然而,这失败并出现以下错误保存密钥“~/.ssh/Official/demo”失败:没有这样的文件或目录
export NewUser="Darsh"
export SSHKey_Path="~/.ssh/Official/demo"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ${SSHKey_Path}
我试过用几种方法包装 ${SSHKey_Path},但没有任何效果:
"
、'
、$(echo ${SSHKey_Path})
等等。
失败不在变量中,而是在~
的解释中。
尝试
export SSHKey_Path=~/.ssh/Official/demo
或
export SSHKey_Path="$HOME/.ssh/Official/demo"
我的 ~/.ssh
目录是指向 /somewhere/else/.ssh/
现在,下面的工作完美了;并且 demo 密钥最终在 /somewhere/else/.ssh/Official
处创建,正如预期的那样。
export NewUser="Sam"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ~/.ssh/Official/demo
然而,当 -f
通过变量提供相同的路径时,它会失败并出现以下错误:
Saving key "~/.ssh/Official/demo" failed: No such file or directory
export NewUser="Darsh"
export SSHKey_Path="~/.ssh/Official/demo"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ${SSHKey_Path}
我尝试了几种方法来提供这个变量,但都没有用。我也无法在文档中找到有关变量的任何信息。 我想知道为什么 -f
只有在通过变量传递时才无法遵循符号链接路径?有解决方法吗? 我不确定,但是,是否建议将其引起注意 here?
编辑:调试后更新问题。原题已保存如下:
我知道 ssh-keygen
有一个标志 -f
来指定 input_keyfile
- 使用它,一次可以在自定义位置创建一个具有自定义名称的密钥。但是,如果 input_keyfile
是一个变量,这将失败。
如何将密钥路径作为变量提供给 ssh-keygen?
以下是来自较大代码的过度简化的片段:
这非常有效:
export NewUser="Sam"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ~/.ssh/Official/demo
然而,这失败并出现以下错误保存密钥“~/.ssh/Official/demo”失败:没有这样的文件或目录
export NewUser="Darsh"
export SSHKey_Path="~/.ssh/Official/demo"
ssh-keygen -N "" -t rsa -b 8192 -C "Login Key of ${NewUser}." -f ${SSHKey_Path}
我试过用几种方法包装 ${SSHKey_Path},但没有任何效果:
"
、'
、$(echo ${SSHKey_Path})
等等。
失败不在变量中,而是在~
的解释中。
尝试
export SSHKey_Path=~/.ssh/Official/demo
或
export SSHKey_Path="$HOME/.ssh/Official/demo"