ssh: load more host key formats than rsa
This commit is contained in:
parent
d69f2f27ee
commit
650c913930
@ -133,6 +133,7 @@ func setUserPass(user, passwordHash string) {
|
||||
p := strings.Split(line, ":")
|
||||
if len(p) < 2 || p[0] != user {
|
||||
buf.WriteString(line)
|
||||
buf.WriteByte('\n')
|
||||
continue
|
||||
}
|
||||
|
||||
|
17
ssh.go
17
ssh.go
@ -23,17 +23,28 @@ func startSSH(cfg *config.Config) {
|
||||
PublicKeyCallback: sshCheckPubkey,
|
||||
}
|
||||
|
||||
pkBytes, err := os.ReadFile("/id_rsa") // TODO configurable
|
||||
hostKeyLoaded := false
|
||||
|
||||
for _, format := range []string{"rsa", "dsa", "ecdsa", "ed25519"} {
|
||||
pkBytes, err := os.ReadFile("/id_" + format)
|
||||
if err != nil {
|
||||
fatalf("ssh: failed to load private key: %v", err)
|
||||
log.Printf("ssh : failed to load %s host key: %v", format, err)
|
||||
continue
|
||||
}
|
||||
|
||||
pk, err := ssh.ParsePrivateKey(pkBytes)
|
||||
if err != nil {
|
||||
fatalf("ssh: failed to parse private key: %v", err)
|
||||
log.Printf("ssh: failed to parse %s host key: %v", format, err)
|
||||
continue
|
||||
}
|
||||
|
||||
sshConfig.AddHostKey(pk)
|
||||
hostKeyLoaded = true
|
||||
}
|
||||
|
||||
if !hostKeyLoaded {
|
||||
fatalf("ssh: failed to load any host key")
|
||||
}
|
||||
|
||||
sshBind := ":22" // TODO configurable
|
||||
listener, err := net.Listen("tcp", sshBind)
|
||||
|
Loading…
Reference in New Issue
Block a user