【发布时间】:2019-06-11 22:05:10
【问题描述】:
我将 Azure DevOps 用于我的管道。出于测试目的,我创建了一个变量 $key 来存储私钥。我想使用该密钥通过 SSH 连接到远程服务器。当我尝试将 $key 写入文件然后使用它时,例如
ssh user@10.10.10.10 -i keyfile
我被要求输入密码。我相信这与私钥文件的格式有关。它显示为一个没有换行符的长字符串。
格式化字符串并将其写入 .pem 文件的最佳方法是什么?
【问题讨论】:
-
您可能想要启动一个 ssh 代理,添加密钥,然后手动输入密码。您只需执行一次,就不必为您的 ssh 会话提供密钥。
-
感谢您的评论格伦。我正在尝试使用 Azure DevOps 将其自动化。密钥需要从变量(现在)安装在构建服务器上,因此我无法与会话交互。
-
然后您需要创建一个没有密码的新密钥。
-
他们的密钥没有密码。我将密钥文本存储为变量并从该变量创建一个文件。我认为这是不正确的文件格式,即没有任何换行符。我正在寻找如何正确格式化从包含换行符的字符串创建的私钥。
-
我明白了。我不知道私钥文件的具体格式是什么。您可以尝试使用 ssh-keygen 生成密钥,并使用您需要创建的内容作为示例创建的私钥文件。