authcmd

command module
v0.0.1-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 3, 2022 License: MIT Imports: 11 Imported by: 0

README

authcmd

Build Status coverage report card

This is an attempt to port the 'only' script from MagmaSoft. The goal is to provide a way to control ssh access to a environnement with allowed/forbidden commands/arguments and replace.

The idea is to use the command parameter of the authorized_keys file which force the execution of a command when logging with a certain key.

authcmd still need tests and is not ready for any kind of serious usage.

Any contribution is welcome

Usage

  • Clone and compile authcmd :
github.com/dranih/authcmd
go build
  • Put the authcmd binary in the PATH of the server to which the clients will ssh

  • Configure the option file authcmd.yml with the allowed/forbidden commands/arguments and set env var AUTHCMD_CONFIG_FILE to it location or put it in your $HOME

  • Add a line to the ~/.ssh.authorized_keys :

command="authcmd <tag1> <tag2>" ssh-rsa AAAAB3N....

Configuration

Dependencies

  • gopkg.in/yaml.v3 to parse yaml config file

To-do

  • Sanitize command if using shell, multi-command option (; delimiter, each command is checked)
  • More tests
  • Better readme (add some use cases)
  • Comment code
  • Add a github pipeline for testing and building
  • Add a log rotate mecanism
  • Add a validation regex string option for each commands
  • Add an option to set an env variable (for exemple set different env vars depending on clients)
  • Add a way to distinct clients (maybe remove commands as main args and only take on client arg). This way we could allow/disallow commands to specific users

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL