无法使用cURL将SSH密钥发送到Github [英] Can't send SSH key to Github with cURL

查看:34
本文介绍了无法使用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用户的,有两点需要考虑

  1. 您的控制台应按正确的顺序分析引号和双引号。
  2. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆