parent
d3f89caa0a
commit
1cd81ed58b
@ -3,12 +3,15 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
|
"bytes"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
"github.com/gokrazy/gokrazy"
|
"github.com/gokrazy/gokrazy"
|
||||||
@ -34,13 +37,19 @@ func loadAuthorizedKeys(path string) (map[string]bool, error) {
|
|||||||
|
|
||||||
result := make(map[string]bool)
|
result := make(map[string]bool)
|
||||||
|
|
||||||
for len(b) > 0 {
|
s := bufio.NewScanner(bytes.NewReader(b))
|
||||||
pubKey, _, _, rest, err := ssh.ParseAuthorizedKey(b)
|
for s.Scan() {
|
||||||
|
if tr := strings.TrimSpace(s.Text()); tr == "" || strings.HasPrefix(tr, "#") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
pubKey, _, _, _, err := ssh.ParseAuthorizedKey(s.Bytes())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
result[string(pubKey.Marshal())] = true
|
result[string(pubKey.Marshal())] = true
|
||||||
b = rest
|
}
|
||||||
|
if err := s.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user