Commit graph

49 commits

Author SHA1 Message Date
Boshi Lian
7fdd88982a
introduce uri for flexable upstream conn (#615)
* Deprecate host and port fields in Upstream message; introduce uri field for connection details

* Update libplugin/plugin.proto

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor(grpc): streamline upstream connection handling and add GetOrGenerateUri method

* refactor(libplugin): update GetOrGenerateUri to return error and add IPv6 test

* refactor(libplugin): simplify GetOrGenerateUri to remove error return and update tests

* Update cmd/sshpiperd/internal/plugin/grpc.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-30 15:18:57 -07:00
Boshi Lian
ca311e15cd
refactor: Revise Dockerfile - Remove entrypoint.sh (#598)
* chore: Formatting

* chore: Formatting (fix indent)

* refactor: Remove entrypoint

* chore: Remove `entrypoint.sh` from `.goreleaser.yaml`

* tests: Replace `entrypoint.sh` script usage in `e2eentry.sh`

* Set default plugin argument from environment variable in main function and update Dockerfile to remove CMD instruction

* Add user and group setup for testing in Dockerfile and update e2e entry script

* Update cmd/sshpiperd/main.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update cmd/sshpiperd/main.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Remove test user and group creation from Dockerfile and move it to e2e entry script; update plugin argument handling in main function

* Update Dockerfile

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Skip empty plugin directory entries in main function

---------

Co-authored-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-25 02:11:04 -07:00
Boshi Lian
2edfa6b4c3
Enhance upstream banner handling with deduplication mode and refactor connection metadata (#597)
* Enhance upstream banner handling with deduplication mode and refactor connection metadata

* Add 'first-only' mode to upstream banner handling and update usage documentation
2025-05-25 00:56:18 -07:00
Boshi Lian
e6d3bb694b
Add upstream banner mode and refactor banner callbacks (#594)
* feat: add upstream banner mode and refactor banner callbacks

* chore: update crypto submodule to latest commit

* fix: improve usage description for upstream banner mode flag

* Update cmd/sshpiperd/daemon.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-19 12:31:04 -07:00
Boshi Lian
2c2d378f86
Fix linting issues (#595)
* fix lint

* Bump golangci-lint action to v8 and update linting args

* fix lint errors

* fix: correct loop condition in main function to process remaining arguments
2025-05-18 00:59:18 -07:00
Boshi Lian
22ad31b127
Add go-reaper integration for process reaping (#580)
* Add go-reaper integration for process reaping

* refactor: move reaper initialization to cmd_linux.go
2025-05-18 00:14:47 -07:00
Boshi Lian
8ea9eb3f4f
feat: add proxy-read-header-timeout flag for PROXY protocol support (#586)
fix: update go-proxyproto and golang.org/x/net dependencies
2025-05-11 02:20:16 -07:00
Boshi Lian
2603cdfa8b
support handle ping@openssh packet (#582)
* chore: Update dependencies in go.mod and go.sum

* chore: Update submodule commit for crypto

* refactor: Update hook functions to return ssh.PipePackageHookMethod for better integration

* fix: Increase sleep duration in TestFixed to ensure proper execution

* fix: Increase sleep duration in TestFixed to ensure proper file flush

* fix: Update docker-compose service images and modify test to use host-password-old

* refactor: Simplify hook functions to return error instead of PipePackageHookMethod for better error handling

* feat: Add reply-ping flag to enable ping response for compatibility with older sshd

* fix: Update subproject commit reference in crypto
2025-05-08 11:53:40 -07:00
Boshi Lian
b2f7f79cc4
Add configuration options for allowed downstream algorithms (#504)
* Add configuration options for allowed downstream algorithms

* Refactor daemon configuration to set allowed downstream algorithms

* Ensure default configuration values are set consistently in newDaemon
2024-12-26 00:21:20 -08:00
Boshi Lian
23e18f4f7c
merge totp to workingdir (#476)
* merge totp to workingdir

* Refactor .goreleaser.yaml to remove plugin_totp build configuration
2024-10-28 01:09:28 -07:00
Boshi Lian
0e6168a6b8
Refactor plugin.proto and pluginbase.go to add support for metadata in connection context (#475)
* Refactor plugin.proto and pluginbase.go to add support for metadata in connection context

* go fmt

* move test plugin out

* Refactor Dockerfile to build test plugin in e2e/testplugin directory

* mv testplugin -> testgrpcplugin

* add test for connection metadata

* enable logging to stdout

* Refactor Dockerfile to build test plugin in e2e/testplugin directory
2024-10-27 23:57:21 -07:00
Yachen Mao
3087aa4eb6
handle nextUpHook is nil (#465) 2024-10-20 08:54:02 -07:00
Boshi Lian
4db98899f4
YAML Plugin add regex match group (#464)
* add support for match group replace

* update doc
2024-10-20 02:15:46 -07:00
Boshi Lian
4ad8e77e3f
add test coverage for go proxy (#460)
* add coverage for go proxy

* Refactor CLI flag name for allowed proxy addresses
2024-10-18 13:28:18 -07:00
Boshi Lian
08d0e23d60
Fix grpc.Dial usage in sshpiperd (#436)
* Fix grpc.Dial usage in sshpiperd

* fix dns not found

* Update dependencies in go.mod and go.sum files

* Refactor grpc.NewClient to remove unnecessary grpc.WithBlock() option
2024-10-18 01:01:58 -07:00
Yachen Mao
479d78e3a0
support assciicast and logpath refactor (#450)
* add asciicast v2 log format support and change tty log filename from username to uniqueID

* screen-recording-format support
2024-10-17 22:42:02 -07:00
Yachen Mao
5ef0d03cb8
Fix timing format to correctly handle microsecond portion of time delta (#448) 2024-10-14 23:48:41 -07:00
Boshi Lian
70fb830dca
Merge pull request from GHSA-4w53-6jvp-gg52
* feat: Add support for allowed proxy addresses

This commit adds support for allowed proxy addresses, which allows only connections from these IP ranges to send a proxy header based on the PROXY protocol. If the allowed proxy addresses are empty, the PROXY protocol support is disabled.

* Update cmd/sshpiperd/main.go

Co-authored-by: Peter G <97112726+pgibson1-godaddy@users.noreply.github.com>

---------

Co-authored-by: Peter G <97112726+pgibson1-godaddy@users.noreply.github.com>
2024-05-09 13:53:36 -07:00
Matej Trop
73169bbace
Make the log formatter configurable (#371)
* Make the log formatter configurable

The change lets us configure the deamon and the plugins to output logs
in the JSON format, which is easier to parse/filter by log processing
tools.

* Add validation for the log-format flag
2024-05-08 15:11:18 -07:00
Boshi Lian
0a38839628
fix default value missing (#306) 2024-01-21 23:43:02 -08:00
Boshi Lian
9fee039d93
Add PipeCreateErrorCallback to handle pipe creation errors (#290)
* Add PipeCreateErrorCallback to handle pipe creation errors

* Add test for FailtobanPipeCreateFail

* Fix missing newline at end of file in pluginbase.go
2023-12-24 03:54:49 -08:00
Boshi Lian
a22ae2d4e9
import new ssh crypto (#220) 2023-09-10 00:49:42 -07:00
Matthew Atkinson
13fcc8c0a8
Add support for using CA certs for upstream ssh connection (#210) 2023-08-25 17:32:49 -07:00
Boshi Lian
36f03e7a74
Create README.md for snap (#205)
* Create README.md for snap

* gen with desc
2023-08-24 23:34:31 -07:00
Boshi Lian
d2b002000e
add windows support (#193)
* add windows support

* build for win

* fix win build
2023-08-16 17:35:03 -07:00
Boshi Lian
502249d275
add config for snap (#191)
* add config for snap

* place holder

* fix build

* fit 7.2

* fix lint

* no empty
2023-08-13 07:07:28 -07:00
Boshi Lian
f5b9f7233f
add snap support (#189)
* embed keygen

* add snap

* add generate log
2023-08-11 06:25:58 -07:00
Boshi Lian
2067fcb003
non return plugin callback now will be triggered together (#162)
* add failtoban plugin

* fmt

* bump ver

* add failtoban e2e

* add readme

* update readme
2023-07-11 01:32:05 -07:00
Boshi Lian
fc3af11b4a
Delete sshpiperd (#152) 2023-04-11 02:40:56 -07:00
Tommaso Doninelli
69fec645ca
Cross-compatible check if FD is a TTY terminal (#151)
Package `term` provides support functions for dealing with terminals, cross-compatible with Unix,darwin and windows.

 The low leve const `unix.TCGETS` is not defined in Darwin arch, ad prevent shspiper to buil and run on osx
2023-04-06 14:57:24 -07:00
Boshi Lian
1cd6cd86d9
add callback for pipe start and pipe err (#145)
* add onstart onerr cb

* cover by e2e

* add missing plugin

* happy lint
2023-03-11 03:30:42 -08:00
Boshi Lian
f0e9accbd0 add base64 host key param 2023-03-04 10:20:43 +00:00
Boshi Lian
53d4789035
add option to drop host key msg (#140)
* add option to drop host key msg

* fix lint
2023-02-13 07:18:48 -08:00
Boshi Lian
2709d8136d
add downstream username to log (#120)
* add downstream username to log

* add username when pipe created
2023-01-06 05:47:56 -08:00
Boshi Lian
740e31dffc
default to ed25519 (#111)
* s/rsa/ed25519/g

* s/rsakey/ed25519key/g

* ed25519 server key
2022-12-09 06:10:49 -08:00
Boshi Lian
01e5a009e0
add banner opt back (#106)
* add banner opt back

* happy lint
2022-11-28 05:56:12 -08:00
Boshi Lian
630a01fbb6 quit when child plugin quits 2022-10-25 09:24:25 +00:00
Boshi Lian
006fcb31da adopt official non auth callback 2022-10-22 11:18:47 +00:00
Boshi Lian
319824e564 align log level across plugins
happy lint

happy lint
2022-08-05 23:08:01 +00:00
Boshi Lian
2ddd69876a replace with proxy protocol listener 2022-07-08 01:58:22 +00:00
Boshi Lian
3047473814 impl hostkey verify for working dir 2022-07-06 18:32:35 +00:00
Boshi Lian
bc9875c4b5 happy lint 2022-07-06 17:27:39 +00:00
Boshi Lian
9e702013c6 update proto grpc 2022-07-06 16:46:25 +00:00
Boshi Lian
0ebe1e19d5 add pdeathsig 2022-07-06 00:14:10 +00:00
Boshi Lian
5e0572a43f minor fix while doing docs 2022-07-05 20:31:14 +00:00
Boshi Lian
fd0a0c628e first move of working dir 2022-07-04 16:49:50 +00:00
Boshi Lian
5dda30365e move typescript logger 2022-07-04 16:49:50 +00:00
Boshi Lian
4bb9470d7d add net grpc 2022-07-04 16:49:50 +00:00
Boshi Lian
dbef31dd3d libplugin 2022-07-04 16:49:50 +00:00