GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - andreibordy/viking: Simple way to manage your remote machines and SSH keys

BranchesTags
Open more actions menu

Latest commit

 

History

43 Commits
43 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
archive
archive
 
 
cli/command
cli/command
 
 
config
config
 
 
sshexec
sshexec
 
 
streams
streams
 
 
.gitignore
.gitignore
 
 
.goreleaser.yaml
.goreleaser.yaml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
main.go
main.go
 
 

Repository files navigation

Viking ⛵️

Go Report Card Go Reference GitHub release

Simple way to manage your remote machines

Bare metal servers are awesome. They let you pick where to run your software and how to deploy it. You get full control to make the most of the server's resources. No limits, no compromises. That's real freedom.

Viking makes it easier to work with them.

NAME:
   viking - Manage your SSH keys and remote machines

USAGE:
   viking [global options] command [command options]

VERSION:
   v1.0

COMMANDS:
    exec      Execute shell command on machine
    copy, cp  Copy files/folders between local and remote machine
    key       Manage SSH keys
    machine   Manage your machines
    config    Get config directory path
    help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

🚀 Installation

See releases for pre-built binaries.

On Unix:

env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/d3witt/viking@latest

On Windows cmd:

set CGO_ENABLED=0
go install -ldflags="-s -w" github.com/d3witt/viking@latest

On Windows powershell:

$env:CGO_ENABLED = '0'
go install -ldflags="-s -w" github.com/d3witt/viking@latest

📄 Usage

🛰️ Add machine:

$ viking machine add --name deathstar --key starkey 168.112.216.50 [email protected]:3000 73.30.62.32:3001
Machine deathstar added.

Note

The key flag is not required. If a key is not specified, SSH Agent will be used to connect to the server.

📡 Exec command (in parallel on all machines):

$ viking exec deathstar echo 1234
168.112.216.50: 1234
61.22.128.69: 1234
73.30.62.32: 1234

📺 Connect to the machine:

$ viking exec --tty deathstar /bin/bash
root@deathstar:~$

🗂️ Copy files/directories (in parallel to/from all machines):

$ viking cp /tmp/file.txt deathstar:/tmp/
Success: 3, Errors: 0

🔑 Add SSH key from a file

$ viking key add --name starkey --passphrase dart ./id_rsa_star
Key starkey added.

🆕 Generate SSH Key

$ viking key generate --name starkey2
Key starkey2 added.

📋 Copy public SSH Key

$ viking key copy starkey2
Public key copied to your clipboard.

⚙️ Custom config directory

Viking saves data locally. Set VIKING_CONFIG_DIR env variable for a custom directory. Use viking config to check the current config folder.

🤝 Missing a Feature?

Feel free to open a new issue, or contact me.

📘 License

Viking is provided under the MIT License.

About

Simple way to manage your remote machines and SSH keys

Topics

bare-metalclideploydeploymentremote-access-toolserverssshssh-keyssh-keysssh-tunnelvm

Resources

Readme
MIT license
Activity

Stars

747 stars

Watchers

5 watching

Forks

10 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.