From 08b30dc3fb7e0ccf0c50db6bd7fe64d07203adf7 Mon Sep 17 00:00:00 2001 From: Denis Date: Sat, 16 Aug 2025 18:20:54 +0300 Subject: [PATCH 1/6] feat: add base readme --- README.md | 337 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 322 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b756ace..23a444b 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,330 @@ -# SSH+ -This application allows you to create alias connections -and use them when selecting an ssh connection. +# Misha - cli ssh client -![GitHub top language](https://img.shields.io/github/languages/top/ssh-connection-manager/ssh-) -![GitHub](https://img.shields.io/github/license/ssh-connection-manager/ssh-) -![GitHub Repo stars](https://img.shields.io/github/stars/ssh-connection-manager/ssh-) -![GitHub issues](https://img.shields.io/github/issues/ssh-connection-manager/ssh-) +[![Go Report Card](https://goreportcard.com/badge/github.com/misha-ssh/kernel)](https://goreportcard.com/report/github.com/misha-ssh/kernel) +[![Go Docs](https://godoc.org/github.com/misha-ssh/kernel?status.svg)](https://godoc.org/github.com/misha-ssh/kernel) +[![Release](https://img.shields.io/github/release/misha-ssh/kernel?status.svg)](https://github.com/misha-ssh/kernel/releases) +[![Action Lint](https://github.com/misha-ssh/kernel/actions/workflows/lint.yml/badge.svg)](https://github.com/misha-ssh/kernel) +[![Action Tests](https://github.com/misha-ssh/kernel/actions/workflows/tests.yml/badge.svg)](https://github.com/misha-ssh/kernel) +[![Action Coverage](https://github.com/misha-ssh/kernel/actions/workflows/coverage.yml/badge.svg)](https://github.com/misha-ssh/kernel) -## Documentation -User [documentation](https://misha-ssh.github.io/docs/) is available at. +This package acts as the core for an ssh client written in go -## Installation +Made using data from packages: -How to install the utility is told here at the [link](https://ssh-connection-manager.github.io/docs/documentation/download.html). +* [crypto](https://pkg.go.dev/golang.org/x/crypto) +* [go-keyring](http://github.com/zalando/go-keyring) +* [term](https://pkg.go.dev/golang.org/x/term) -## Contributing +## ๐Ÿ“ Features -Please see [CONTRIBUTING](https://github.com/ssh-connection-manager/ssh-/blob/main/CONTRIBUTING.md) for details. +- **Connection Management:** Commands for creating, connecting, deleting, and updating your connection +- **Data encryption:** Your connection is securely encrypted +- **Configurations:** Possibility of connection configuration +- **The local environment** There is an environment for testing the connection +- **Flexibility** The ability to embed in any client on go -## License -Licensed under the MIT [license](https://github.com/ssh-connection-manager/ssh-?tab=MIT-1-ov-file). +## โœจ Install +install this package in your repository + +```bash +go get github.com/misha-ssh/kernel +``` + +## ๐Ÿ“– Examples & Usage + +You will be provided with a list of commands that you can use in your projects + +The code with the commands will be on the way - [link](./examples/command) + +### ๐Ÿ”Œ Connect + +The command to connect to the remote server + +```go +package main + +import ( + "github.com/misha-ssh/kernel/pkg/connect" + "github.com/misha-ssh/kernel/pkg/kernel" +) + +func main() { + connection := &connect.Connect{...} + + err := kernel.Connect(connection) + if err != nil { + panic(err) + } +} +``` + +### โœ๏ธ Create + +The command to create a connection + +this command saves the connection to a file and goes through the dependency initialization cycle + +```go +package main + +import ( + "github.com/misha-ssh/kernel/pkg/connect" + "github.com/misha-ssh/kernel/pkg/kernel" +) + +func main() { + connection := &connect.Connect{...} + + err := kernel.Create(connection) + if err != nil { + panic(err) + } +} +``` + +### ๐Ÿช„ Update + +The command to update the connection + +This command also updates the connection data if you need to resave the private key + +```go +package main + +import ( + "github.com/misha-ssh/kernel/pkg/connect" + "github.com/misha-ssh/kernel/pkg/kernel" +) + +func main() { + connection := &connect.Connect{...} + + err := kernel.Update(connection, "test") + if err != nil { + panic(err) + } +} +``` + +### ๐Ÿ†‘ Delete + +The command to delete the connection + +This command removes the connection from the file and also deletes the private key if it has been saved + +```go +package main + +import ( + "github.com/misha-ssh/kernel/pkg/connect" + "github.com/misha-ssh/kernel/pkg/kernel" +) + +func main() { + connection := &connect.Connect{...} + + err := kernel.Delete(connection) + if err != nil { + panic(err) + } +} +``` + +### ๐Ÿ“ List + +The command to get a list of connections + +This command will list the connections from the previously created connections + +```go +package main + +import ( + "fmt" + + "github.com/misha-ssh/kernel/pkg/kernel" +) + +func main() { + connections, err := kernel.List() + if err != nil { + panic(err) + } + + fmt.Println(connections) +} +``` + +### ๐Ÿ–ฅ Struct Connection + +This structure describes our connection + +We pass this structure to the commands: + +- Connect +- Create +- Update +- Delete + +Description of fields: + +* ``Alias`` - unique name (we use it when selecting an exception from the list and create unique connections to identify + them) +* ``Login`` - the user's login on the remote device +* ``Password`` - if you have a password connection, then fill in this field, if with a key, then leave an empty line. +* ``Address`` - the address of the remote device +* ``Type`` - there is only one connection type so far - ``connect.TypeSSH`` +* ``CreatedAt`` - the creation time is filled in manually +* ``UpdatedAt`` - the update time is filled in manually +* ``SshOptions`` - this is a structure with additional fields for creating software - ``connect.TypeSSH`` +* ``Port`` - the port is filled in manually +* ``PrivateKey`` - the path along with the name of the private key + +```go +package main + +import ( + "fmt" + "time" + + "github.com/misha-ssh/kernel/pkg/connect" +) + +func main() { + connection := &connect.Connect{ + Alias: "test", + Login: "root", + Password: "password", + Address: "localhost", + Type: connect.TypeSSH, + CreatedAt: time.Now().Format("2006.01.02 15:04:05"), + UpdatedAt: time.Now().Format("2006.01.02 15:04:05"), + SshOptions: &connect.SshOptions{ + Port: 22, + PrivateKey: "/path/to/private/key", + }, + } + + fmt.Println(connection) +} +``` + +### ๐Ÿค– Run ssh server + +for local testing, you can raise your ssh servers - there are three types of them. + +1) password connection + +to run, write the command: + +```bash +make up-ssh +``` + +to install and remove the server: + +```bash +make down-ssh +``` + +Server accesses: + +* ``login`` - root +* ``address`` - localhost +* ``password`` - password +* ``port`` - 22 + +2) connect with a private key + +to run, write the command: + +```bash +make up-ssh-key +``` + +to install and remove the server: + +```bash +make down-ssh-key +``` + +Server accesses: + +* ``login`` - root +* ``address`` - localhost +* ``private key`` - ./dockerkey +* ``port`` - 2222 + +3) connecting via a non-standard port + +to run, write the command: + +```bash +make up-ssh-port +``` + +to install and remove the server: + +```bash +make down-ssh-port +``` + +Server accesses: + +* ``login`` - root +* ``address`` - localhost +* ``password`` - password +* ``port`` - 2222 + +### ๐Ÿ”– Description variable + +The variables that the application uses are located here: + +* App values - [link](configs/envconst) +* Config keys - [link](configs/envname) + +App values (the values that are used in the application and also in the config): + +* ``AppName`` - project name & project directory +* ``Theme`` - The theme is an application, there is no implementation at this stage. +* ``DirectionPrivateKeys`` - the name of the directory where the keys will be saved +* ``FilenameConnections`` - the name of the connection file +* ``FilenameConfig`` - the name of the file with the application configs +* ``NameServiceCryptKey`` - the names of the service that will store the private key for encryption +* ``TypeConsoleLogger`` - type for console logging +* ``TypeStorageLogger`` - the type for logging to a file +* ``TypeCombinedLogger`` - type for all types of logging + +Config keys (these keys are located in the application configuration): + +* ``Theme`` - stores the application's theme, in this case there is no implementation +* ``Logger`` - stores the type of application logging + +## ๐Ÿงช Testing + +You can run the command for testing after the step with local installation + +The command to launch the linter: + +```bash +make lint +``` + +Run Unit tests: + +```bash +make tests +``` + +Run test coverage: + +```bash +make test-coverage +``` + +## ๐Ÿค Feedback + +We appreciate your support and look forward to making our product even better with your help! + +[@Denis Korbakov](https://github.com/deniskorbakov) From 221348ca5814071907f0cef35fdb312e38937191 Mon Sep 17 00:00:00 2001 From: Denis Date: Sat, 16 Aug 2025 18:26:07 +0300 Subject: [PATCH 2/6] fix: update logic - delete more extra text --- README.md | 274 +++--------------------------------------------------- 1 file changed, 15 insertions(+), 259 deletions(-) diff --git a/README.md b/README.md index 23a444b..01cf0ab 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ # Misha - cli ssh client -[![Go Report Card](https://goreportcard.com/badge/github.com/misha-ssh/kernel)](https://goreportcard.com/report/github.com/misha-ssh/kernel) -[![Go Docs](https://godoc.org/github.com/misha-ssh/kernel?status.svg)](https://godoc.org/github.com/misha-ssh/kernel) -[![Release](https://img.shields.io/github/release/misha-ssh/kernel?status.svg)](https://github.com/misha-ssh/kernel/releases) -[![Action Lint](https://github.com/misha-ssh/kernel/actions/workflows/lint.yml/badge.svg)](https://github.com/misha-ssh/kernel) -[![Action Tests](https://github.com/misha-ssh/kernel/actions/workflows/tests.yml/badge.svg)](https://github.com/misha-ssh/kernel) -[![Action Coverage](https://github.com/misha-ssh/kernel/actions/workflows/coverage.yml/badge.svg)](https://github.com/misha-ssh/kernel) +![Go Report Card](https://goreportcard.com/badge/github.com/misha-ssh/kernel) +![Release](https://img.shields.io/github/release/misha-ssh/kernel?status.svg) +![Action Lint](https://github.com/misha-ssh/kernel/actions/workflows/lint.yml/badge.svg) +![Action Tests](https://github.com/misha-ssh/kernel/actions/workflows/tests.yml/badge.svg) +![Action Coverage](https://github.com/misha-ssh/kernel/actions/workflows/coverage.yml/badge.svg) +![GitHub top language](https://img.shields.io/github/languages/top/ssh-connection-manager/ssh-) +![GitHub](https://img.shields.io/github/license/ssh-connection-manager/ssh-) +![GitHub Repo stars](https://img.shields.io/github/stars/ssh-connection-manager/ssh-) +![GitHub issues](https://img.shields.io/github/issues/ssh-connection-manager/ssh-) This package acts as the core for an ssh client written in go @@ -15,13 +18,13 @@ Made using data from packages: * [go-keyring](http://github.com/zalando/go-keyring) * [term](https://pkg.go.dev/golang.org/x/term) -## ๐Ÿ“ Features +## โœจ Documentation -- **Connection Management:** Commands for creating, connecting, deleting, and updating your connection -- **Data encryption:** Your connection is securely encrypted -- **Configurations:** Possibility of connection configuration -- **The local environment** There is an environment for testing the connection -- **Flexibility** The ability to embed in any client on go +install this package in your repository + +```bash +go get github.com/misha-ssh/kernel +``` ## โœจ Install @@ -41,71 +44,18 @@ The code with the commands will be on the way - [link](./examples/command) The command to connect to the remote server -```go -package main - -import ( - "github.com/misha-ssh/kernel/pkg/connect" - "github.com/misha-ssh/kernel/pkg/kernel" -) - -func main() { - connection := &connect.Connect{...} - - err := kernel.Connect(connection) - if err != nil { - panic(err) - } -} -``` - ### โœ๏ธ Create The command to create a connection this command saves the connection to a file and goes through the dependency initialization cycle -```go -package main - -import ( - "github.com/misha-ssh/kernel/pkg/connect" - "github.com/misha-ssh/kernel/pkg/kernel" -) - -func main() { - connection := &connect.Connect{...} - - err := kernel.Create(connection) - if err != nil { - panic(err) - } -} -``` - ### ๐Ÿช„ Update The command to update the connection This command also updates the connection data if you need to resave the private key -```go -package main - -import ( - "github.com/misha-ssh/kernel/pkg/connect" - "github.com/misha-ssh/kernel/pkg/kernel" -) - -func main() { - connection := &connect.Connect{...} - - err := kernel.Update(connection, "test") - if err != nil { - panic(err) - } -} -``` ### ๐Ÿ†‘ Delete @@ -113,194 +63,12 @@ The command to delete the connection This command removes the connection from the file and also deletes the private key if it has been saved -```go -package main - -import ( - "github.com/misha-ssh/kernel/pkg/connect" - "github.com/misha-ssh/kernel/pkg/kernel" -) - -func main() { - connection := &connect.Connect{...} - - err := kernel.Delete(connection) - if err != nil { - panic(err) - } -} -``` - ### ๐Ÿ“ List The command to get a list of connections This command will list the connections from the previously created connections -```go -package main - -import ( - "fmt" - - "github.com/misha-ssh/kernel/pkg/kernel" -) - -func main() { - connections, err := kernel.List() - if err != nil { - panic(err) - } - - fmt.Println(connections) -} -``` - -### ๐Ÿ–ฅ Struct Connection - -This structure describes our connection - -We pass this structure to the commands: - -- Connect -- Create -- Update -- Delete - -Description of fields: - -* ``Alias`` - unique name (we use it when selecting an exception from the list and create unique connections to identify - them) -* ``Login`` - the user's login on the remote device -* ``Password`` - if you have a password connection, then fill in this field, if with a key, then leave an empty line. -* ``Address`` - the address of the remote device -* ``Type`` - there is only one connection type so far - ``connect.TypeSSH`` -* ``CreatedAt`` - the creation time is filled in manually -* ``UpdatedAt`` - the update time is filled in manually -* ``SshOptions`` - this is a structure with additional fields for creating software - ``connect.TypeSSH`` -* ``Port`` - the port is filled in manually -* ``PrivateKey`` - the path along with the name of the private key - -```go -package main - -import ( - "fmt" - "time" - - "github.com/misha-ssh/kernel/pkg/connect" -) - -func main() { - connection := &connect.Connect{ - Alias: "test", - Login: "root", - Password: "password", - Address: "localhost", - Type: connect.TypeSSH, - CreatedAt: time.Now().Format("2006.01.02 15:04:05"), - UpdatedAt: time.Now().Format("2006.01.02 15:04:05"), - SshOptions: &connect.SshOptions{ - Port: 22, - PrivateKey: "/path/to/private/key", - }, - } - - fmt.Println(connection) -} -``` - -### ๐Ÿค– Run ssh server - -for local testing, you can raise your ssh servers - there are three types of them. - -1) password connection - -to run, write the command: - -```bash -make up-ssh -``` - -to install and remove the server: - -```bash -make down-ssh -``` - -Server accesses: - -* ``login`` - root -* ``address`` - localhost -* ``password`` - password -* ``port`` - 22 - -2) connect with a private key - -to run, write the command: - -```bash -make up-ssh-key -``` - -to install and remove the server: - -```bash -make down-ssh-key -``` - -Server accesses: - -* ``login`` - root -* ``address`` - localhost -* ``private key`` - ./dockerkey -* ``port`` - 2222 - -3) connecting via a non-standard port - -to run, write the command: - -```bash -make up-ssh-port -``` - -to install and remove the server: - -```bash -make down-ssh-port -``` - -Server accesses: - -* ``login`` - root -* ``address`` - localhost -* ``password`` - password -* ``port`` - 2222 - -### ๐Ÿ”– Description variable - -The variables that the application uses are located here: - -* App values - [link](configs/envconst) -* Config keys - [link](configs/envname) - -App values (the values that are used in the application and also in the config): - -* ``AppName`` - project name & project directory -* ``Theme`` - The theme is an application, there is no implementation at this stage. -* ``DirectionPrivateKeys`` - the name of the directory where the keys will be saved -* ``FilenameConnections`` - the name of the connection file -* ``FilenameConfig`` - the name of the file with the application configs -* ``NameServiceCryptKey`` - the names of the service that will store the private key for encryption -* ``TypeConsoleLogger`` - type for console logging -* ``TypeStorageLogger`` - the type for logging to a file -* ``TypeCombinedLogger`` - type for all types of logging - -Config keys (these keys are located in the application configuration): - -* ``Theme`` - stores the application's theme, in this case there is no implementation -* ``Logger`` - stores the type of application logging - ## ๐Ÿงช Testing You can run the command for testing after the step with local installation @@ -311,18 +79,6 @@ The command to launch the linter: make lint ``` -Run Unit tests: - -```bash -make tests -``` - -Run test coverage: - -```bash -make test-coverage -``` - ## ๐Ÿค Feedback We appreciate your support and look forward to making our product even better with your help! From 31db7b21a001ac542c92ef6fa807aef44bd56706 Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 17 Aug 2025 15:00:35 +0300 Subject: [PATCH 3/6] feat: add description --- README.md | 103 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 01cf0ab..9789ca6 100644 --- a/README.md +++ b/README.md @@ -10,68 +10,125 @@ ![GitHub Repo stars](https://img.shields.io/github/stars/ssh-connection-manager/ssh-) ![GitHub issues](https://img.shields.io/github/issues/ssh-connection-manager/ssh-) -This package acts as the core for an ssh client written in go +Misha - SSH client made on go Made using data from packages: -* [crypto](https://pkg.go.dev/golang.org/x/crypto) -* [go-keyring](http://github.com/zalando/go-keyring) -* [term](https://pkg.go.dev/golang.org/x/term) +* [cobra](https://github.com/spf13/cobra) +* [fang](http://github.com/charmbracelet/fang) +* [huh](https://github.com/charmbracelet/huh) ## โœจ Documentation -install this package in your repository - -```bash -go get github.com/misha-ssh/kernel -``` +You can read the documentation by clicking on the [link](https://misha-ssh.github.io/docs) ## โœจ Install -install this package in your repository +Install using homebrew: ```bash -go get github.com/misha-ssh/kernel +# macOS or Linux +brew install --cask misha ``` +You can also install the package from the release via the [link](https://github.com/misha-ssh/cli/releases) ## ๐Ÿ“– Examples & Usage -You will be provided with a list of commands that you can use in your projects - -The code with the commands will be on the way - [link](./examples/command) +The list of commands that you can use in this SSH client ### ๐Ÿ”Œ Connect The command to connect to the remote server +[![asciicast](https://asciinema.org/a/734047.svg)](https://asciinema.org/a/734047) + ### โœ๏ธ Create The command to create a connection -this command saves the connection to a file and goes through the dependency initialization cycle +[![asciicast](https://asciinema.org/a/734049.svg)](https://asciinema.org/a/734049) ### ๐Ÿช„ Update The command to update the connection -This command also updates the connection data if you need to resave the private key - +[![asciicast](https://asciinema.org/a/734050.svg)](https://asciinema.org/a/734050) ### ๐Ÿ†‘ Delete The command to delete the connection -This command removes the connection from the file and also deletes the private key if it has been saved +[![asciicast](https://asciinema.org/a/734051.svg)](https://asciinema.org/a/734051?t=0:05) -### ๐Ÿ“ List +### ๐Ÿค– Run ssh server -The command to get a list of connections +for local testing, you can raise your ssh servers - there are three types of them. -This command will list the connections from the previously created connections +1) password connection -## ๐Ÿงช Testing +to run, write the command: + +```bash +make up-ssh +``` + +to install and remove the server: + +```bash +make down-ssh +``` + +Server accesses: + +* ``login`` - root +* ``address`` - localhost +* ``password`` - password +* ``port`` - 22 + +2) connect with a private key + +to run, write the command: + +```bash +make up-ssh-key +``` + +to install and remove the server: + +```bash +make down-ssh-key +``` + +Server accesses: + +* ``login`` - root +* ``address`` - localhost +* ``private key`` - ./dockerkey +* ``port`` - 2222 + +3) connecting via a non-standard port + +to run, write the command: + +```bash +make up-ssh-port +``` + +to install and remove the server: + +```bash +make down-ssh-port +``` + +Server accesses: + +* ``login`` - root +* ``address`` - localhost +* ``password`` - password +* ``port`` - 2222 -You can run the command for testing after the step with local installation + +## ๐Ÿงช Testing The command to launch the linter: From b6be672b4cd1bc61b7af50a505a592e7298c0280 Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 17 Aug 2025 15:06:12 +0300 Subject: [PATCH 4/6] feat: update all readme --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9789ca6..f662f25 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,13 @@ # Misha - cli ssh client -![Go Report Card](https://goreportcard.com/badge/github.com/misha-ssh/kernel) -![Release](https://img.shields.io/github/release/misha-ssh/kernel?status.svg) -![Action Lint](https://github.com/misha-ssh/kernel/actions/workflows/lint.yml/badge.svg) -![Action Tests](https://github.com/misha-ssh/kernel/actions/workflows/tests.yml/badge.svg) -![Action Coverage](https://github.com/misha-ssh/kernel/actions/workflows/coverage.yml/badge.svg) -![GitHub top language](https://img.shields.io/github/languages/top/ssh-connection-manager/ssh-) -![GitHub](https://img.shields.io/github/license/ssh-connection-manager/ssh-) -![GitHub Repo stars](https://img.shields.io/github/stars/ssh-connection-manager/ssh-) -![GitHub issues](https://img.shields.io/github/issues/ssh-connection-manager/ssh-) +![Go Report Card](https://goreportcard.com/badge/github.com/misha-ssh/cli) +![Release](https://img.shields.io/github/release/misha-ssh/cli?status.svg) +![Action Lint](https://github.com/misha-ssh/cli/actions/workflows/lint.yml/badge.svg) +![Action Tests](https://github.com/misha-ssh/cli/actions/workflows/build.yml/badge.svg) +![Action Coverage](https://github.com/misha-ssh/cli/actions/workflows/release.yml/badge.svg) +![GitHub](https://img.shields.io/github/license/misha-ssh/cli) +![GitHub Repo stars](https://img.shields.io/github/stars/misha-ssh/cli) +![GitHub issues](https://img.shields.io/github/issues/misha-ssh/cli) Misha - SSH client made on go From 76a734c2c228bc0376aec9ff5ce7005bfc76129c Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 17 Aug 2025 15:07:16 +0300 Subject: [PATCH 5/6] fix: delete extra badges --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index f662f25..f896157 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,8 @@ ![Go Report Card](https://goreportcard.com/badge/github.com/misha-ssh/cli) ![Release](https://img.shields.io/github/release/misha-ssh/cli?status.svg) ![Action Lint](https://github.com/misha-ssh/cli/actions/workflows/lint.yml/badge.svg) -![Action Tests](https://github.com/misha-ssh/cli/actions/workflows/build.yml/badge.svg) -![Action Coverage](https://github.com/misha-ssh/cli/actions/workflows/release.yml/badge.svg) -![GitHub](https://img.shields.io/github/license/misha-ssh/cli) +![Action Build](https://github.com/misha-ssh/cli/actions/workflows/build.yml/badge.svg) ![GitHub Repo stars](https://img.shields.io/github/stars/misha-ssh/cli) -![GitHub issues](https://img.shields.io/github/issues/misha-ssh/cli) Misha - SSH client made on go From b0b6070c099b77247e161aa1749044a2c4906fb2 Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 17 Aug 2025 15:10:50 +0300 Subject: [PATCH 6/6] fix: delete extra query param --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f896157..08cfa1f 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ The command to update the connection The command to delete the connection -[![asciicast](https://asciinema.org/a/734051.svg)](https://asciinema.org/a/734051?t=0:05) +[![asciicast](https://asciinema.org/a/734051.svg)](https://asciinema.org/a/734051) ### ๐Ÿค– Run ssh server