add banner opt back (#106)

* add banner opt back

* happy lint
This commit is contained in:
Boshi Lian 2022-11-28 05:56:12 -08:00 committed by GitHub
parent 3232bee379
commit 01e5a009e0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 158 additions and 5 deletions

View file

@ -56,6 +56,23 @@ func newDaemon(ctx *cli.Context) (*daemon, error) {
return nil, fmt.Errorf("failed to listen for connection: %v", err)
}
bannertext := ctx.String("banner-text")
bannerfile := ctx.String("banner-file")
if bannertext != "" || bannerfile != "" {
config.BannerCallback = func(_ ssh.ConnMetadata, _ ssh.ChallengeContext) string {
if bannerfile != "" {
text, err := os.ReadFile(bannerfile)
if err != nil {
log.Warnf("cannot read banner file %v: %v", bannerfile, err)
} else {
return string(text)
}
}
return bannertext
}
}
return &daemon{
config: config,
lis: lis,

View file

@ -115,6 +115,18 @@ func main() {
Usage: "create typescript format screen recording and save into the directory see https://linux.die.net/man/1/script",
EnvVars: []string{"SSHPIPERD_TYPESCRIPT_LOG_DIR"},
},
&cli.StringFlag{
Name: "banner-text",
Value: "",
Usage: "display a banner before authentication, would be ignored if banner file was set",
EnvVars: []string{"SSHPIPERD_BANNERTEXT"},
},
&cli.StringFlag{
Name: "banner-file",
Value: "",
Usage: "display a banner from file before authentication",
EnvVars: []string{"SSHPIPERD_BANNERFILE"},
},
},
Action: func(ctx *cli.Context) error {
level, err := log.ParseLevel(ctx.String("log-level"))