From 2525195749a1c343a9e9ff1f2f328acf7678c28a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Myyr=C3=A4?= Date: Mon, 29 May 2017 14:51:16 +0300 Subject: [PATCH] use writeTmpKeyFile in calcFingerprint (#1828) this makes calcFingerprint use SSH.KeyTestpath instead of os temp dir. --- models/ssh_key.go | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/models/ssh_key.go b/models/ssh_key.go index 653889e48..fa33cd4c1 100644 --- a/models/ssh_key.go +++ b/models/ssh_key.go @@ -13,7 +13,6 @@ import ( "io/ioutil" "math/big" "os" - "path" "path/filepath" "strings" "sync" @@ -373,15 +372,8 @@ func checkKeyFingerprint(e Engine, fingerprint string) error { func calcFingerprint(publicKeyContent string) (string, error) { // Calculate fingerprint. - tmpPath := strings.Replace(path.Join(os.TempDir(), fmt.Sprintf("%d", time.Now().Nanosecond()), - "id_rsa.pub"), "\\", "/", -1) - dir := path.Dir(tmpPath) - - if err := os.MkdirAll(dir, os.ModePerm); err != nil { - return "", fmt.Errorf("Failed to create dir %s: %v", dir, err) - } - - if err := ioutil.WriteFile(tmpPath, []byte(publicKeyContent), 0644); err != nil { + tmpPath, err := writeTmpKeyFile(publicKeyContent) + if err != nil { return "", err } stdout, stderr, err := process.GetManager().Exec("AddPublicKey", "ssh-keygen", "-lf", tmpPath)