diff --git a/docker-compose.yml b/docker-compose.yml index feda168..326f4bd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,4 +5,4 @@ services: - "1337:1337" working_dir: /app volumes: - - ./.ssh:/app/.ssh/ \ No newline at end of file + - ./.ssh:/app/.ssh/ diff --git a/main.go b/main.go index 48d6af8..4474fde 100644 --- a/main.go +++ b/main.go @@ -27,7 +27,7 @@ func main() { } func migrateDb() { - m, err := migrate.New("file://./migrations/", "sqlite:///app/db.sqlite") + m, err := migrate.New("file://./migrations/", "sqlite://db.sqlite") if err != nil { log.Fatal(err) } diff --git a/src/sshwordle/game.go b/src/sshwordle/game.go index 1eaed0b..de25e98 100644 --- a/src/sshwordle/game.go +++ b/src/sshwordle/game.go @@ -3,13 +3,14 @@ package sshwordle import ( "database/sql" "fmt" - "github.com/charmbracelet/bubbles/progress" - "github.com/charmbracelet/ssh" "log" - _ "modernc.org/sqlite" "strings" "time" + "github.com/charmbracelet/bubbles/progress" + "github.com/charmbracelet/ssh" + _ "modernc.org/sqlite" + "github.com/charmbracelet/bubbles/stopwatch" "github.com/charmbracelet/bubbles/viewport" tea "github.com/charmbracelet/bubbletea" diff --git a/src/sshwordle/results.go b/src/sshwordle/results.go index 30aa2b8..c092dbe 100644 --- a/src/sshwordle/results.go +++ b/src/sshwordle/results.go @@ -2,13 +2,14 @@ package sshwordle import ( "database/sql" - tea "github.com/charmbracelet/bubbletea" "log" "time" + + tea "github.com/charmbracelet/bubbletea" ) func openDb() *sql.DB { - db, err := sql.Open("sqlite", "file:///app/db.sqlite") + db, err := sql.Open("sqlite", "file:db.sqlite") if err != nil { log.Panic(err) } diff --git a/src/sshwordle/server.go b/src/sshwordle/server.go index cb27ec5..cc28380 100644 --- a/src/sshwordle/server.go +++ b/src/sshwordle/server.go @@ -22,6 +22,7 @@ func StartServer(host string, port int, useApi bool) { s, err := wish.NewServer( wish.WithAddress(fmt.Sprintf("%s:%d", host, port)), wish.WithPublicKeyAuth(publicKeyHandler), + wish.WithPasswordAuth(passwordHandler), wish.WithHostKeyPath(".ssh/term_info_ed25519"), wish.WithMiddleware( teaMiddleware.Middleware(sshwordleTeaHandler(useApi)), @@ -55,6 +56,10 @@ func publicKeyHandler(_ctx ssh.Context, _key ssh.PublicKey) bool { return true } +func passwordHandler(_ ssh.Context, _ string) bool { + return true +} + func sshwordleTeaHandler(useApi bool) teaMiddleware.Handler { return func(session ssh.Session) (tea.Model, []tea.ProgramOption) { pty, _, active := session.Pty() diff --git a/src/sshwordle/utils.go b/src/sshwordle/utils.go index b70dea4..c4fa34d 100644 --- a/src/sshwordle/utils.go +++ b/src/sshwordle/utils.go @@ -3,8 +3,9 @@ package sshwordle import ( "crypto/sha256" "fmt" - "github.com/charmbracelet/ssh" "regexp" + + "github.com/charmbracelet/ssh" ) var keys = []string{ @@ -39,7 +40,13 @@ func makeGuessesSlice() [][]*Guess { func makeIdentifier(session ssh.Session) string { h := sha256.New() - h.Write(session.PublicKey().Marshal()) + + if key := session.PublicKey(); key != nil { + h.Write(key.Marshal()) + } else { + h.Write([]byte(session.User())) + } + return fmt.Sprintf("%x", h.Sum(nil)) }