Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl 如何将公钥转换为base64公钥?_Curl_Base64_Public Key Encryption - Fatal编程技术网

Curl 如何将公钥转换为base64公钥?

Curl 如何将公钥转换为base64公钥?,curl,base64,public-key-encryption,Curl,Base64,Public Key Encryption,我正在尝试编写一个脚本,通过公钥验证将数据发送到sftp服务器。 我用卷曲来做这个 经过一些尝试和错误后,我获得了一个有效的连接,但具有以下输出: * SSH authentication methods available: publickey,gssapi-keyex,gssapi-with-mic * Using ssh public key file pub.key * Using ssh private key file private.ppk * SSH public key aut

我正在尝试编写一个脚本,通过公钥验证将数据发送到sftp服务器。 我用卷曲来做这个

经过一些尝试和错误后,我获得了一个有效的连接,但具有以下输出:

* SSH authentication methods available: publickey,gssapi-keyex,gssapi-with-mic
* Using ssh public key file pub.key
* Using ssh private key file private.ppk
* SSH public key authentication failed: Invalid key data, not base64 encoded
* Agent based authentication successful
* Authentication complete
它在我的笔记本电脑上工作,所以我只是试图让脚本运行到我的同事,但在她的笔记本电脑上连接失败

之后,我意识到行SSH公钥身份验证失败:密钥数据无效,而不是base64编码

我既不知道为什么“基于代理的身份验证”在我这方面是成功的(或者这到底意味着什么),也不知道为什么它不能在我同事的笔记本电脑上工作

我也没有找到将我的公钥转换为base64公钥的方法

问候 动物21

编辑: 好的,在搜索了网页并尝试了一些东西之后,我决定检查我的密钥是否是有效的base64字符串,所以我写了一个函数,它是C#,令人惊讶的是,我的密钥是base64编码的

这对我现在的生活有什么影响

亲切问候

试试这个:


在线编码或解码字符串以使其符合Base64数据编码规范(RFC 4648)的方法。

我知道这已经太晚了,但我最好的猜测是,您的密钥所在的任何环境都不允许在密钥文本中出现换行或空白。至于机器上的代理身份验证,可能是SSH-agent,它是跟踪SSH密钥和已知主机的守护进程。代理知道连接的正确密钥和信任,因此代理身份验证工作,但它告诉您,您提供的密钥无法进行身份验证(公钥身份验证失败)。这意味着您提供的密钥与您的代理知道要使用的密钥不完全相同。下面介绍如何在命令行上转换为base64,顺便说一句:LINUX--base64-w 0