Ai
1 Star 0 Fork 0

smartos-club/triton-kubernetes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ssh_utils.go 1.02 KB
一键复制 编辑 原始数据 按行查看 历史
Fayaz Ghiasy 提交于 2018-01-31 07:29 +08:00 . updated GetPublicKeyFingerprintFromPrivateKey
package util
import (
"crypto/md5"
"fmt"
"io/ioutil"
"github.com/manifoldco/promptui"
"golang.org/x/crypto/ssh"
)
// GetPublicKeyFingerprintFromPrivateKey takes in location of a private key and returns the md5 fingerprint
func GetPublicKeyFingerprintFromPrivateKey(privateKeyPath string) (string, error) {
var fingerprint string
var err error
key, err := ioutil.ReadFile(privateKeyPath)
if err != nil {
return "", fmt.Errorf("Unable to read private key: %v", err)
}
signer, err := ssh.ParsePrivateKey(key)
if err != nil {
prompt := promptui.Prompt{
Label: "Private Key Password",
Mask: '*',
}
password, _ := prompt.Run()
signer, err = ssh.ParsePrivateKeyWithPassphrase(key, []byte(password))
if err != nil {
return "", fmt.Errorf("Unable to parse private key: %v", err)
}
}
h := md5.New()
h.Write(signer.PublicKey().Marshal())
for i, b := range h.Sum(nil) {
fingerprint += fmt.Sprintf("%02x", b)
if i < len(h.Sum(nil))-1 {
fingerprint += fmt.Sprintf(":")
}
}
return fingerprint, err
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/smartos-club/triton-kubernetes.git
git@gitee.com:smartos-club/triton-kubernetes.git
smartos-club
triton-kubernetes
triton-kubernetes
v0.9.1

搜索帮助