现在应该是凌晨 2 点了……而我却一夜未眠。尽管如此……我还是想让我的开发人员给我发送一个公共 ssh 密钥。如果这个人给你发送了一个以以下内容开头的文件:
-----BEGIN CERTIFICATE-----
MIIGgzCCBGugAwIBAgIJAOm7SVMTNGm5MA0GCSqGSIb3DQEBBQUAMIGHMQswCQYD
VQQGEwJJTjELMAkGA1UECBMCVVAxDjAMBgNVBAcTBU5vaWRhMREwDwYDVQQKEwhU
ZWttaW5kejEUMBIGA1UECxMLRW5naW5lZXJpbmcxDDAKBgNVBAMTA2RyZzEkMCIG
CSqGSIb3DQEJARYVcm9iLnNwYWRlQHNhc2FpbmMubmV0MB4XDTEyMTAyMzA2MDUw
NloXDTIzMDEyOTA2MDUwNlowgYcxCzAJBgNVBAYTAklOMQswCQYDVQQIEwJVUDEO
MAwGA1UEBxMFTm9pZGExETAPBgNVBAoTCFRla21pbmR6MRQwEgYDVQQLEwtFbmdp
bmVlcmluZzEMMAoGA1UEAxMDZHJnMSQwIgYJKoZIhvcNAQkBFhVyb2Iuc3BhZGVA
-----END CERTIFICATE-----
pem 证书正确吗?不是公钥吗?:)我应该回复电子邮件重新创建吗?
谢谢!)
答案1
这是 x509 证书。由于证书包含公钥,而 SSH 密钥只是公钥,因此可以将其转换为 OpenSSH 密钥格式。但是,像这样分发密钥的情况相当少见,因此开发人员可能向您发送了错误的内容。要尝试转换它,请使用以下命令:
% head -n2 test.crt
-----BEGIN CERTIFICATE-----
MIICWDCCAcGgAwIBAgIJAKyY2+5477dGMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
% openssl x509 -in test.crt -pubkey -noout > test.pub
% ssh-keygen -i -m PKCS8 -f test.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCtpZDQLOzXwlhLWvjquDzfE0hwtUjD1jQCfv5pcuPGfI918d+nKufDbnjCB1mmg2PTZb+PcVv2zeqnvBEISJh6idnOoQSZgx/gkS1VEkOJtaG+ECMUwW4/hiUbGlVkKaIhuy9eyoLdF/pJRE5ZNGNxSxwT/3111gxcZqc8VF1n6w==
编辑:看起来 PKCS8 的导入功能是在 5.5p1 和 5.8p1 之间的某个地方添加的,如果您ssh-keygen
没有该-m
选项,则需要找到更高版本。