Skip to content

Commit 8867fb1

Browse files
Merge pull request #221 from charmbracelet/banner-upstream
feat: allow to set a server banner
2 parents 7de97f6 + 973b62f commit 8867fb1

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

server.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type Server struct {
3737
Handler Handler // handler to invoke, ssh.DefaultHandler if nil
3838
HostSigners []Signer // private keys for the host key, must have at least one
3939
Version string // server version to be sent before the initial handshake
40+
Banner string // server banner
4041

4142
KeyboardInteractiveHandler KeyboardInteractiveHandler // keyboard-interactive authentication handler
4243
PasswordHandler PasswordHandler // password authentication handler
@@ -132,6 +133,11 @@ func (srv *Server) config(ctx Context) *gossh.ServerConfig {
132133
if srv.Version != "" {
133134
config.ServerVersion = "SSH-2.0-" + srv.Version
134135
}
136+
if srv.Banner != "" {
137+
config.BannerCallback = func(conn gossh.ConnMetadata) string {
138+
return srv.Banner
139+
}
140+
}
135141
if srv.PasswordHandler != nil {
136142
config.PasswordCallback = func(conn gossh.ConnMetadata, password []byte) (*gossh.Permissions, error) {
137143
applyConnMetadata(ctx, conn)

0 commit comments

Comments
 (0)