diff options
Diffstat (limited to 'ssh_server.go')
-rw-r--r-- | ssh_server.go | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/ssh_server.go b/ssh_server.go index 7fd31c0..58a5acd 100644 --- a/ssh_server.go +++ b/ssh_server.go @@ -9,45 +9,45 @@ import ( "os" "strings" - glider_ssh "github.com/gliderlabs/ssh" + gliderSSH "github.com/gliderlabs/ssh" "go.lindenii.runxiyu.org/lindenii-common/ansiec" "go.lindenii.runxiyu.org/lindenii-common/clog" - go_ssh "golang.org/x/crypto/ssh" + goSSH "golang.org/x/crypto/ssh" ) var ( - server_public_key_string string - server_public_key_fingerprint string - server_public_key go_ssh.PublicKey + serverPubkeyString string + serverPubkeyFP string + serverPubkey goSSH.PublicKey ) func serveSSH(listener net.Listener) error { - var host_key_bytes []byte - var host_key go_ssh.Signer + var hostKeyBytes []byte + var hostKey goSSH.Signer var err error - var server *glider_ssh.Server + var server *gliderSSH.Server - if host_key_bytes, err = os.ReadFile(config.SSH.Key); err != nil { + if hostKeyBytes, err = os.ReadFile(config.SSH.Key); err != nil { return err } - if host_key, err = go_ssh.ParsePrivateKey(host_key_bytes); err != nil { + if hostKey, err = goSSH.ParsePrivateKey(hostKeyBytes); err != nil { return err } - server_public_key = host_key.PublicKey() - server_public_key_string = string(go_ssh.MarshalAuthorizedKey(server_public_key)) - server_public_key_fingerprint = go_ssh.FingerprintSHA256(server_public_key) + serverPubkey = hostKey.PublicKey() + serverPubkeyString = string(goSSH.MarshalAuthorizedKey(serverPubkey)) + serverPubkeyFP = goSSH.FingerprintSHA256(serverPubkey) - server = &glider_ssh.Server{ - Handler: func(session glider_ssh.Session) { - client_public_key := session.PublicKey() - var client_public_key_string string - if client_public_key != nil { - client_public_key_string = strings.TrimSuffix(string(go_ssh.MarshalAuthorizedKey(client_public_key)), "\n") + server = &gliderSSH.Server{ + Handler: func(session gliderSSH.Session) { + clientPubkey := session.PublicKey() + var clientPubkeyStr string + if clientPubkey != nil { + clientPubkeyStr = strings.TrimSuffix(string(goSSH.MarshalAuthorizedKey(clientPubkey)), "\n") } - clog.Info("Incoming SSH: " + session.RemoteAddr().String() + " " + client_public_key_string + " " + session.RawCommand()) + clog.Info("Incoming SSH: " + session.RemoteAddr().String() + " " + clientPubkeyStr + " " + session.RawCommand()) fmt.Fprintln(session.Stderr(), ansiec.Blue+"Lindenii Forge "+VERSION+", source at "+strings.TrimSuffix(config.HTTP.Root, "/")+"/:/source/"+ansiec.Reset+"\r") cmd := session.Command() @@ -63,13 +63,13 @@ func serveSSH(listener net.Listener) error { fmt.Fprintln(session.Stderr(), "Too many arguments\r") return } - err = ssh_handle_upload_pack(session, client_public_key_string, cmd[1]) + err = sshHandleUploadPack(session, clientPubkeyStr, cmd[1]) case "git-receive-pack": if len(cmd) > 2 { fmt.Fprintln(session.Stderr(), "Too many arguments\r") return } - err = ssh_handle_receive_pack(session, client_public_key_string, cmd[1]) + err = sshHandleRecvPack(session, clientPubkeyStr, cmd[1]) default: fmt.Fprintln(session.Stderr(), "Unsupported command: "+cmd[0]+"\r") return @@ -79,15 +79,15 @@ func serveSSH(listener net.Listener) error { return } }, - PublicKeyHandler: func(ctx glider_ssh.Context, key glider_ssh.PublicKey) bool { return true }, - KeyboardInteractiveHandler: func(ctx glider_ssh.Context, challenge go_ssh.KeyboardInteractiveChallenge) bool { return true }, + PublicKeyHandler: func(ctx gliderSSH.Context, key gliderSSH.PublicKey) bool { return true }, + KeyboardInteractiveHandler: func(ctx gliderSSH.Context, challenge goSSH.KeyboardInteractiveChallenge) bool { return true }, // It is intentional that we do not check any credentials and accept all connections. // This allows all users to connect and clone repositories. However, the public key // is passed to handlers, so e.g. the push handler could check the key and reject the // push if it needs to. } - server.AddHostKey(host_key) + server.AddHostKey(hostKey) if err = server.Serve(listener); err != nil { clog.Fatal(1, "Serving SSH: "+err.Error()) |