golang ssh와 함께 사용하기 위해 암호화 된 키를 해독하는 방법을 알아낼 수 없기 때문에 포인터를 사용하면 감사하겠습니다. 두 개의 다른 코드 소스 (예 : this)를 함께 매시하려고하지만이 코드를 사용할 수 없습니다. 와golang ssh에서 암호화 된 개인 키를 사용하는 방법
key, err := ioutil.ReadFile(privateKey)
if err != nil {
log.Fatalf("Unable to read private key: %v", err)
}
:
나는 내가 DER을 받고 있다고 생각하지만, 암호화/SSH와 함께 사용하는 마샬를 위해 PEM이 다시 필요
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,D7C72273BE168626E5B2D1BC72E56326
...
-----END RSA PRIVATE KEY-----
나는 그것을 읽고 암호화되지 않은 (!) 키를 입력하면 다음을 수행 할 수 있습니다.
signer, err := ssh.ParsePrivateKey(key)
if err != nil {
log.Fatalf("Unable to parse private key: %v", err)
}
config := &ssh.ClientConfig{
User: username,
Auth: []ssh.AuthMethod{
ssh.PublicKeys(signer),
},
}
그리고이 방법을 사용할 수 있습니다. 내가 서명자에 DER에서 얻을 어떻게
func decrypt(key []byte, password []byte) []byte {
block, rest := pem.Decode(key)
if len(rest) > 0 {
log.Fatalf("Extra data included in key")
}
der, err := x509.DecryptPEMBlock(block, password)
if err != nil {
log.Fatalf("Decrypt failed: %v", err)
}
return der
}
하지만, :
나는 내가 DER로 나에게 해독 PEM을 얻을 생각하는 몇 가지 코드를 재사용?또는이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
굉장합니다. 고마워요! – DazWilkin