【发布时间】:2020-07-26 19:34:15
【问题描述】:
我的~/.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?
以下是来自较大代码的过度简化的 sn-ps:
这非常有效:
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}) 等等。
【问题讨论】:
标签: bash ssh environment-variables zsh ssh-keygen