我需要为GitHub进行SSH密钥审核,但我不确定如何找到我的RSA密钥指纹.我最初按照指南在Linode主持的Ubuntu 10.04(Lucid Lynx)盒子上进行设置.
如果使用PuTTY远程登录,我需要输入什么命令来查找当前的RSA密钥指纹?
我刚刚生成了我的RSA密钥对,我想将该密钥添加到GitHub.
我试过cd id_rsa.pub和id_rsa.pub,但没有运气.如何访问SSH公钥?
我真的不明白这个:
根据:http://www.madboa.com/geek/openssl/#key-rsa,您可以从私钥生成公钥.
openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
Run Code Online (Sandbox Code Playgroud)
我最初的想法是,它们是一起生成的.RSA私钥是否包含总和?还是公钥?
加密某些数据与签署某些数据(使用RSA)有什么区别?
它是否简单地颠倒了公钥 - 私钥的作用?
例如,我想使用我的私钥生成消息,所以只有我可能是发件人.我希望我的公钥用于阅读消息,我不在乎谁阅读它们.我希望能够加密某些信息并将其用作我的软件的产品密钥.我只关心我是唯一能够产生这些的人.我想在我的软件中包含我的公钥来解密/读取密钥的签名.我不在乎谁可以读取密钥中的数据,我只关心我是唯一可以生成它们的可验证的人.
在这种情况下签名是否有用?
使用时出现以下错误git:
$ git pull
Unable to negotiate with 172.16.42.42 port 22: no matching host key type found. Their offer: ssh-rsa
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
我在哪里可以找到有关RSA公钥格式的文档?
RSA公钥,格式为OpenSSH:
SSH-RSA AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx + RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER + A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN + ffE7iiayQf/2XR + 8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2 + jGIxqZtgWg7lTy3mXy5x836Sj/6L
格式化用于Secure Shell的相同公钥(RFC 4716 - 安全Shell(SSH)公钥文件格式):
---- BEGIN SSH2 PUBLIC KEY ----
AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYs
c8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS
0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7r
NzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaX
fgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQ
LGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L
---- END SSH2 PUBLIC KEY ----
Run Code Online (Sandbox Code Playgroud)
格式化为RSA公钥的相同公钥(注意五个 -,没有空格):
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA+xGZ/wcz9ugFpP07Nspo6U17l0YhFiFpxxU4pTk3Lifz9R3zsIsu
ERwta7+fWIfxOo208ett/jhskiVodSEt3QBGh4XBipyWopKwZ93HHaDVZAALi/2A
+xTBtWdEo7XGUujKDvC2/aZKukfjpOiUI8AhLAfjmlcD/UZ1QPh0mHsglRNCmpCw
mwSXA9VNmhz+PiB+Dml4WWnKW/VHo2ujTXxq7+efMU4H2fny3Se3KYOsFPFGZ1TN
QSYlFuShWrHPtiLmUdPoP6CV2mML1tk+l7DIIqXrQhLUKDACeM5roMx0kLhUWB8P
+0uj1CNlNN4JRZlC7xFfqiMbFRU9Z4N6YwIDAQAB
-----END RSA PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
base-64编码数据的十六进制转储:
00 00 00 07 73 73 68 2d 72 73 61 00 00 00 01 25 00 00 01 00 …Run Code Online (Sandbox Code Playgroud) 嗨,我正在编写一个程序,从一个.pem文件导入私钥,并创建一个私钥对象,以便以后使用它.我遇到的问题是一些pem文件头开头
-----BEGIN PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
而其他人开始
-----BEGIN RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
通过我的搜索我知道第一个PKCS#8格式化,但我不知道另一个格式是什么格式.
这是我认为我应该使用rsync使用身份文件进行连接的语法:
rsync -avz -e 'ssh -p1234 -i ~/.ssh/1234-identity' \ "/local/dir/" remoteUser@22.33.44.55:"/remote/dir/"
但它给了我一个错误:
Warning: Identity file ~/.ssh/1234-identity not accessible: No such file or directory.
文件很好,权限设置正确,它在执行ssh时工作 - 只是不使用rsync - 至少在我的语法中.我究竟做错了什么?它是否试图在远程计算机上查找身份文件?如果是这样,我如何指定我想在本地计算机上使用身份文件?
它们似乎都是需要公钥和私钥的加密算法.为什么我会选择一个与另一个在我的客户端服务器应用程序中提供加密?
我已经生成了一个私钥:
openssl genrsa [-out file] –des3
Run Code Online (Sandbox Code Playgroud)
在此之后,我生成了一个公钥:
openssl rsa –pubout -in private.key [-out file]
Run Code Online (Sandbox Code Playgroud)
我想用我的私钥签署一些消息,并使用我的公钥验证其他一些消息,使用如下代码:
public String sign(String message) throws SignatureException{
try {
Signature sign = Signature.getInstance("SHA1withRSA");
sign.initSign(privateKey);
sign.update(message.getBytes("UTF-8"));
return new String(Base64.encodeBase64(sign.sign()),"UTF-8");
} catch (Exception ex) {
throw new SignatureException(ex);
}
}
public boolean verify(String message, String signature) throws SignatureException{
try {
Signature sign = Signature.getInstance("SHA1withRSA");
sign.initVerify(publicKey);
sign.update(message.getBytes("UTF-8"));
return sign.verify(Base64.decodeBase64(signature.getBytes("UTF-8")));
} catch (Exception ex) {
throw new SignatureException(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
我找到了将我的私钥转换为PKCS8格式并加载它的解决方案.它适用于这样的一些代码:
public PrivateKey getPrivateKey(String filename) throws Exception {
File f …Run Code Online (Sandbox Code Playgroud) rsa ×10
encryption ×3
openssl ×3
ssh ×3
dsa ×2
git ×2
ssh-keys ×2
java ×1
key ×1
license-key ×1
pem ×1
private-key ×1
rsync ×1
signing ×1
unix ×1