mirror of https://github.com/tailscale/tailscale/
ipn/ipnlocal: generate tailscaled-owned SSH keys as needed
Updates #3802 Change-Id: Ie1bc9ae3f3639603b88b4e19b7eb12bea528ff77 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>pull/4028/head
parent
cce6aad6c0
commit
c4a6d9fa5d
@ -0,0 +1,42 @@
|
||||
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build linux
|
||||
// +build linux
|
||||
|
||||
package ipnlocal
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSSHKeyGen(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
lb := &LocalBackend{varRoot: dir}
|
||||
keys, err := lb.getTailscaleSSH_HostKeys()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
got := map[string]bool{}
|
||||
for _, k := range keys {
|
||||
got[k.PublicKey().Type()] = true
|
||||
}
|
||||
want := map[string]bool{
|
||||
"ssh-rsa": true,
|
||||
"ecdsa-sha2-nistp256": true,
|
||||
"ssh-ed25519": true,
|
||||
}
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Fatalf("keys = %v; want %v", got, want)
|
||||
}
|
||||
|
||||
keys2, err := lb.getTailscaleSSH_HostKeys()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !reflect.DeepEqual(keys, keys2) {
|
||||
t.Errorf("got different keys on second call")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue