Goで自分のSSH指紋を取得するにはどうすればよいですか?ゴーランのSSH指紋
Finger, err := ssh.**
log.Println(Finger)
// 12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53
Goで自分のSSH指紋を取得するにはどうすればよいですか?ゴーランのSSH指紋
Finger, err := ssh.**
log.Println(Finger)
// 12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53
キーシグネチャは、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()
もう一つの方法は、sshパッケージを使用してキーを解析することであり、その後、フィンガープリントを生成するためにFingerprintLegacyMD5を使用してください。この回答を見る:
何の指紋?あなたのリモートサーバ、ローカルのsshサーバ、ssh-agentの特定の公開鍵、ローカルファイル? (そして、あなたが例として示しているそのパターンは、もはや使用されていないmd5の指紋です) – JimB
@JimB私のローカルマシン。私はそれをterraformと一緒に使う必要があります。 – CESCO
@JimB https://www.terraform.io/docs/providers/do/r/droplet.html – CESCO