如何使用Go获取自己的ssh指纹?
Finger, err := ssh.**
log.Println(Finger)
// 12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53
答案 0 :(得分:5)
密钥签名只是ssh线格式的未编码密钥数据的加密哈希。
以下是从OpenSSH格式公钥解析ssh密钥并获取MD5指纹的基本示例:
key, err := ioutil.ReadFile("/path/to/id_rsa.pub")
if err != nil {
log.Fatal(err)
}
parts := strings.Fields(string(key))
if len(parts) < 2 {
log.Fatal("bad key")
}
k, err := base64.StdEncoding.DecodeString(parts[1])
if err != nil {
log.Fatal(err)
}
fp := md5.Sum([]byte(k))
fmt.Print("MD5:")
for i, b := range fp {
fmt.Printf("%02x", b)
if i < len(fp)-1 {
fmt.Print(":")
}
}
fmt.Println()
答案 1 :(得分:2)
另一种方法是使用ssh包解析密钥,然后使用FingerprintLegacyMD5生成指纹。看到这个答案: