如果我在 Windows 上使用公钥,如何将其添加到服务器的 authorized_keys 文件中(cat 命令不起作用),我知道如何用 scp 命令或 sftp 添加,而且它工作正常,但问题是这会将当前密钥覆盖为新密钥。我想添加第二个密钥,并且想在安全的情况下进行。
我尝试了一下但找不到目录根。
C:>类型 C:/Users/User/.ssh/id_rsa.pub | plink.exe -ssh 用户@主机-pw“密码” “cat >> Users/User/.ssh/authorized_keys”
答案1
问题:
如何使用 plink(putty 实用程序)从 Windows 批处理文件将公钥添加到远程 Linux 服务器的 authorized_keys 文件。
问题: 以下命令失败,并出现路径未找到错误
plink -ssh [用户名]@[域] -pw [密码] cat .ssh/keyfile.pub >> .ssh/authorized_keys
正如您所怀疑的,正斜杠 / 和 > 在 Windows 中是特殊字符。它们在传递给 plink 之前由 Windows cmd 会话进行解释。因此 plink 无法理解路径,也无法理解附加命令。
解决方案: 您使用另一个特殊字符 ^ 或 shift-6 来转义批处理文件中的问题字符。然后 cmd shell 将不会解释它们,并且 plink 将获取您想要的命令。
plink -ssh [用户名]@[域] -pw [密码] cat .ssh^/keyfile.pub ^>^> .ssh^/authorized_keys
效果很好。