相关疑难解决方法(0)

更改ec2实例的密钥对

如何在AWS管理控制台中更改ec2实例的密钥对?我可以停止实例,我可以创建新的密钥对,但是我没有看到任何修改实例密钥对的链接.

ssh amazon-s3 amazon-ec2 amazon-web-services key-pair

376
推荐指数
13
解决办法
36万
查看次数

如何存储/检索RSA公钥/私钥

我想使用RSA公钥加密.存储或检索私钥和公钥的最佳方法是什么?XML在这里是个好主意吗?

如何获得钥匙?

RSAParameters privateKey = RSA.ExportParameters(true);
RSAParameters publicKey = RSA.ExportParameters(false);
Run Code Online (Sandbox Code Playgroud)

因为RSAParameters具有以下成员:D,DP,DQ,Exponent,InverseQ,Modulus,P,Q

哪一个是关键?

.net c# cryptography rsa

43
推荐指数
2
解决办法
6万
查看次数

.pem文件是否包含私钥和公钥?

我想知道pem文件是否包含私钥和公钥?什么是pem代表什么?

security ssh ssl openssl

40
推荐指数
2
解决办法
3万
查看次数

将RSA公钥转换为RSA DER

我有ssh-keygen生成的id_rsa.pub密钥.如何以编程方式将id_rsa.pub文件转换为RSA DER格式的密钥?

openssl rsa

17
推荐指数
2
解决办法
3万
查看次数

将OpenSSL生成的RSA公钥转换为OpenSSH格式(PHP)

我一直尝试使用PHP的openssl扩展生成RSA密钥对,并将结果保存为OpenSSH兼容密钥对 - 意味着私钥是PEM编码(这很容易),公钥以OpenSSH特定格式存储以下形式:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABA...more base64 encoded stuff...
Run Code Online (Sandbox Code Playgroud)

据我所知,这种格式包括:

  • 明文中的键类型,后跟空格(即"openssh-rsa")
  • base64编码的字符串,表示以下数据:
    • 算法名称的长度(以字节为单位)(在本例中为7)编码为32位无符号长大端
    • 算法名称,在本例中为'ssh-rsa'
    • RSA'e'数字的长度,以字节为单位,编码为32位无符号长大端
    • RSA'e'号码
    • RSA'n'的长度,以字节为单位,编码为32位无符号长大端
    • RSA'n'号码

我尝试使用PHP的pack()函数实现这一点,但无论我尝试什么,结果永远不会等同于我ssh-keygen -y -f在openssl生成的相同RSA私钥上使用命令所得到的结果.

这是我的代码的简化版本:

<?php

// generate private key
$privKey = openssl_pkey_new(array(
    'private_key_bits' => 1024,
    'private_key_type' => OPENSSL_KEYTYPE_RSA
));

// convert public key to OpenSSH format
$keyInfo = openssl_pkey_get_details($privKey);
$data = pack("Na*", 7, 'ssh-rsa');
$data .= pack("Na*", strlen($keyInfo['rsa']['e']), $keyInfo['rsa']['e']);
$data .= pack("Na*", strlen($keyInfo['rsa']['n']), $keyInfo['rsa']['n']);

$pubKey = "ssh-rsa " . base64_encode($data);

echo "PHP generated RSA public key:\n$pubKey\n\n";

// For comparison, generate public …
Run Code Online (Sandbox Code Playgroud)

php openssl openssh rsa

7
推荐指数
1
解决办法
6194
查看次数

如何将RSA密钥转换为ssh-rsa

我正在尝试使用Apples安全框架将生成的公共RSA密钥转换为SSH.

这是我用于生成密钥对的代码:

- (void)generatePrivateKey {
    NSDictionary *privateKeyAttr = @{(__bridge id)kSecAttrIsPermanent: @YES,
                                     (__bridge id)kSecAttrApplicationTag: self.privateTag};
    NSDictionary *publicKeyAttr = @{(__bridge id)kSecAttrIsPermanent: @YES,
                                    (__bridge id)kSecAttrApplicationTag: self.publicTag};


    NSDictionary *keyPairAttr = @{(__bridge id)kSecAttrKeySizeInBits: @1024,
                                  (__bridge id)kSecAttrKeyType: (__bridge id)kSecAttrKeyTypeRSA,
                                  (__bridge id)kSecPrivateKeyAttrs: privateKeyAttr,
                                  (__bridge id)kSecPublicKeyAttrs: publicKeyAttr};

    SecKeyRef publicKey;
    SecKeyRef privateKey;

    SecKeyGeneratePair((__bridge CFDictionaryRef)keyPairAttr, &publicKey, &privateKey);
}

- (NSString *)getPublicKey {
    NSString *contents = [self keyForTag:self.publicTag];
    return [NSString stringWithFormat:@"-----BEGIN RSA PUBLIC KEY-----\n%@\n-----END RSA PUBLIC KEY-----", contents];
}

- (NSString *)getPrivateKey {
    NSString *contents = [self keyForTag:self.privateTag];
    return [NSString stringWithFormat:@"-----BEGIN …
Run Code Online (Sandbox Code Playgroud)

encryption ssh openssl openssh objective-c

5
推荐指数
1
解决办法
947
查看次数

ssh-keygen和openssl提供了两个不同的公钥

ssh-keygen和openssl是否可以从同一私钥生成两个不同的公钥?Command ssh-keygen -y -f ./my.key会给(ssh-rsa同一行之后的内容)与使用command 生成的一个(在-----BEGIN PUBLIC KEY-----和之间的内容)不同的公共密钥。-----END PUBLIC KEY-----openssl rsa -in my.key -pubout

encryption openssl rsa ssh-keys key-pair

3
推荐指数
1
解决办法
1620
查看次数