https://github.com/pungrumpy/go-ssh-demo
This is a simple script to generate SSH keys for a user on a remote server.
https://github.com/pungrumpy/go-ssh-demo
go golang ssh ssh-key ssh-key-generator
Last synced: 11 months ago
JSON representation
This is a simple script to generate SSH keys for a user on a remote server.
- Host: GitHub
- URL: https://github.com/pungrumpy/go-ssh-demo
- Owner: PunGrumpy
- License: mit
- Created: 2023-04-22T18:06:14.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-02T08:18:17.000Z (almost 3 years ago)
- Last Synced: 2025-01-27T06:32:16.670Z (about 1 year ago)
- Topics: go, golang, ssh, ssh-key, ssh-key-generator
- Language: Go
- Homepage: https://pkg.go.dev/github.com/PunGrumpy/go-ssh-key/ssh
- Size: 10.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go SSH Keygeneration
This is a simple script to generate SSH keys for a user on a remote server.
## Usage
```bash
touch main.go
go get github.com/PunGrumpy/go-ssh-demo/ssh
code main.go
```
### Generate Key
```go
package main
import (
"fmt"
"log"
"os"
"github.com/PunGrumpy/go-ssh-demo/ssh"
)
func main() {
var (
publicKey, privateKey []byte
err error
)
if publicKey, privateKey, err = ssh.GenerateKey(); err != nil {
log.Fatal(err)
}
if err = os.WriteFile("my_private_key", privateKey, 0600); err != nil {
log.Fatal(err)
}
if err = os.WriteFile("server_public_key", publicKey, 0644); err != nil {
log.Fatal(err)
}
fmt.Println("Done ✅")
}
```
### Server Run
```go
package main
import (
"fmt"
"io/ioutil"
"github.com/PunGrumpy/go-ssh-demo/ssh"
)
func main() {
var (
err error
)
serverKeyBytes, err := ioutil.ReadFile("my_private_key.pem")
if err != nil {
fmt.Printf("unable to read server key: %v", err)
}
authorizedKeysBytes, err := ioutil.ReadFile("server_public_key.pub")
if err != nil {
fmt.Printf("unable to read authorized keys: %v", err)
}
if err = ssh.StartServer(serverKeyBytes, authorizedKeysBytes); err != nil {
fmt.Printf("unable to start SSH server: %v", err)
}
}
```