ssh: load more host key formats than rsa
This commit is contained in:
parent
d69f2f27ee
commit
82afd9492a
26
ssh.go
26
ssh.go
@ -23,18 +23,28 @@ func startSSH(cfg *config.Config) {
|
|||||||
PublicKeyCallback: sshCheckPubkey,
|
PublicKeyCallback: sshCheckPubkey,
|
||||||
}
|
}
|
||||||
|
|
||||||
pkBytes, err := os.ReadFile("/id_rsa") // TODO configurable
|
hostKeyLoaded := false
|
||||||
if err != nil {
|
|
||||||
fatalf("ssh: failed to load private key: %v", err)
|
for _, format := range []string{"rsa", "dsa", "ecdsa", "ed25519"} {
|
||||||
|
pkBytes, err := os.ReadFile("/id_" + format)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("ssh : failed to load %s host key: %v", format, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
pk, err := ssh.ParsePrivateKey(pkBytes)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("ssh: failed to parse %s host key: %v", format, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
sshConfig.AddHostKey(pk)
|
||||||
}
|
}
|
||||||
|
|
||||||
pk, err := ssh.ParsePrivateKey(pkBytes)
|
if !hostKeyLoaded {
|
||||||
if err != nil {
|
fatalf("ssh: failed to load any host key")
|
||||||
fatalf("ssh: failed to parse private key: %v", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sshConfig.AddHostKey(pk)
|
|
||||||
|
|
||||||
sshBind := ":22" // TODO configurable
|
sshBind := ":22" // TODO configurable
|
||||||
listener, err := net.Listen("tcp", sshBind)
|
listener, err := net.Listen("tcp", sshBind)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user