我正在将Azure DevOps用于管道。为了进行测试,我创建了一个变量$ key来存储私钥。我想使用该密钥通过SSH远程服务器。当我尝试将$ key写入文件然后使用它时
ssh user@10.10.10.10 -i keyfile
我被要求输入密码。我相信这与私钥文件的格式有关。它显示为长字符串,没有换行符。
格式化字符串并将其写入.pem文件的最佳方法是什么?
答案 0 :(得分:0)
如果要使用私钥,则应将公钥添加到.ssh/authorized_keys
。
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub | ssh you@server 'cat >> ~/.ssh/authorized_keys'
$ ssh -i ~/.ssh/id_rsa you@server
请注意,您应该允许sshd通过公共密钥登录:
PubkeyAuthentication yes
如果无法更改服务器上的设置,则可能要使用expect
。它的安全性较差。阅读this了解更多信息。