无法使用cURL将SSH密钥发送到Github [英] Can't send SSH key to Github with cURL
本文介绍了无法使用cURL将SSH密钥发送到Github的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将我的公共ssh密钥发送给Github。我将键设置为shell中的一个变量,但它给出key is invalid. You must supply a key in OpenSSH public key format
错误。我具有发送密钥的身份验证,但它不起作用。
以➜ ~
开头的行是命令,输出睡觉。
➜ ~ key=$(cat .ssh/id_0001.pub)
➜ ~ echo $key
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCk9BFg0PyDeOn186G+gx16KjeYPekGlPppNcg1shjqzVSppNJHXy08GqBNgxN14TU3UzQyRej6BjSi0YGlWVZAz1tDedaFsauwCYYRIO9Aej7HJcmU9V8Sv9npWBGjQZTS/KYRg790xo8zueoCzCXR+Sufxy6yn5xee+e938nkdY0O+/Lxv/3Ks6IQpvJlCOYdvvUC1liIQWd2nxc9T3vtjWtslG5/Yq4PzBT4ja5A0xMNerCrIXf7e7m+DtV2jIESYCwYMBOAioRdSDHIGHL4YOoikYeebUFe1ajTalZYEmsFW/0yu6GEhvoe9FP1IhPIN5nPI6h3EJWDDEpOOI6IdG4Ex5Slzg+TRYG6CoUhRb1d/iQrcSzdibP450GrqxaSMZicmOEj/7w6SvItd1qJ+my3W1RZmGhRQ8CaXMpZvJERFdS2tAmO42r3IC24Xe7ZU+vvlxgS+H7F19kAWWhL8Q8OGFmC9Zs5gkci/jxG6f7Wlnd35UHJ9VreCQl/t0= archie@PC
➜ ~ curl -H "Authorization: token 90********************" --data '{"title":"test-key","key":"${key[@]}"}' https://api.github.com/user/keys
{
"message": "Validation Failed",
"errors": [
{
"resource": "PublicKey",
"code": "custom",
"field": "key",
"message": "key is invalid. You must supply a key in OpenSSH public key format"
}
],
"documentation_url": "https://docs.github.com/rest/reference/users#create-a-public-ssh-key-for-the-authenticated-user"
}
推荐答案
这是针对Windows用户的,有两点需要考虑
- 您的控制台应按正确的顺序分析引号和双引号。
- cURL需要JSON属性和键的报价。
那么我们如何调试它:
- 将";-v--trace-ascii-";添加到curl命令以查看命令的日志。
- 对cmd或PowerShell中的数据使用ECHO或WRITE-HOST
Windows PowerShell示例
$publicKey =Get-Content -Path "$HOME.sshgithub.pub"
$data='{""title"":""script"",""key"":""' + $publicKey + '""}'
curl -X POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token $userToken" https://api.github.com/user/keys -d $data -v --trace-ascii -
确保cURL接收有效的JSON数据非常重要。
这篇关于无法使用cURL将SSH密钥发送到Github的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文