geofront-cli

CLI client for Geofront, a simple SSH key management server


Keywords
geofront, python, ssh, ssh-key
Licenses
GPL-3.0/GPL-3.0+
Install
pip install geofront-cli==0.4.4

Documentation

Geofront CLI client

Latest PyPI version Build status (Travis CI) Build status (AppVeyor)

It provides a CLI client for Geofront, a simple SSH key management server.

Installation

It is available on PyPI, so you can install it using pip installer. We, however, recommend to use pipsi instead so that geofront-cli and its dependencies don't make your global site-packages messy.

$ pipsi install geofront-cli

Getting started

What you have to do first of all is to configure the Geofront server URL. Type geofront-cli start and then it will show a prompt:

$ geofront-cli start
Geofront server URL:

We suppose http://example.com/ here. It will open an authentication page in your default web browser:

$ geofront-cli start
Geofront server URL: http://example.com/
Continue to authenticate in your web browser...
Press return to continue

List available remotes

You can list the available remotes using geofront-cli remotes command:

$ geofront-cli remotes
web-1
web-2
web-3
worker-1
worker-2
db-1
db-2

If you give -v/--verbose option it will show their actual addresses as well:

$ geofront-cli remotes -v
web-1        ubuntu@192.168.0.5
web-2        ubuntu@192.168.0.6
web-3        ubuntu@192.168.0.7
worker-1     ubuntu@192.168.0.25
worker-2     ubuntu@192.168.0.26
db-1 ubuntu@192.168.0.50
db-2 ubuntu@192.168.0.51

SSH to remote

You can easily connect to a remote through SSH. Use geofront-cli ssh command instead of vanilla ssh:

$ geofront-cli ssh web-1
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 2.6.32-042stab078.27 i686)

 * Documentation:  https://help.ubuntu.com/
ubuntu@web-1:~$

In most cases, you probably need to list remotes to find an alias to SSH before run geofront-cli ssh command. geofront-cli go command is a single command for these two actions at once:

$ geofront-cli go
(...interactive fuzzy finder for remotes is shown...)
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 2.6.32-042stab078.27 i686)

 * Documentation:  https://help.ubuntu.com/
ubuntu@web-1:~$

Note that there's a shortcut command gfg which is an alias of geofront-cli go.

There is geofront-cli scp command as well, which is corresponding to scp:

$ geofront-cli scp file.txt web-1:file.txt
file.txt                                      100% 3157     3.1KB/s   00:00
$ geofront-cli scp -r web-1:path/etc/apt ./
sources.list                                  100% 3157     3.1KB/s   00:00
trusted.gpg                                   100%   14KB  13.9KB/s   00:00

Missing features

  • Shortcut for geofront-cli ssh command
  • Make geofront-cli ssh similar to ssh
  • Autocompletion

Author and license

Hong Minhee wrote geofront-cli, and Spoqa maintains it. It is licensed under GPLv3 or later.

Changelog

Version 0.4.5

To be released.

Version 0.4.4

Released on April 03, 2020.

  • Fixed some command won't work properly. This bug occured when running ssh or scp command through the other command. (e.g. geofront-cli go) [#19 by cynthia]

Version 0.4.3

Released on March 25, 2020.

  • Added jump host options to use ProxyJump in SSH. [#18 by cynthia]

Version 0.4.2

Released on February 26, 2020.

  • Added supporting for LibreSSL. [#16 by cynthia]

Version 0.4.1

Released on May 24, 2017.

  • Fixed a bug that geofront-cli go/gfg had crashed with AttributeError when a user cancelled (i.e. Ctrl-C) to select a remote. [#10]

Version 0.4.0

Released on May 23, 2017.

  • Dropped support of Python 2.6 and 3.2.
  • geofront-cli go command and its alias shortcut gfg were introduced. It's an interactive user interface to select a remote and SSH to it at once.
  • Fixed verification failure of SSL certificates when Python was installed using Homebrew on macOS. Now it depends on Certifi.
  • Now the output list of geofront-cli remotes is sorted.
  • The second column of geofront-cli remotes --verbose result became vertically aligned.
  • The second column of geofront-cli remotes --verbose result became to omit the port number if it's 22 so that these are easy to copy-and-paste into other SSH programs.
  • Loading spinners became shown when time-taking tasks are running.

Version 0.3.4

Released on April 3, 2017.

  • Fixed UnicodeError during signing the running Python 3 executable on macOS.

Version 0.3.3

Released on March 30, 2017.

Version 0.3.2

Released on May 31, 2016.

  • Fixed ImportError on Python 2.6.

Version 0.3.1

Released on May 28, 2016.

  • Forward compatibility with Geofront 0.4.

Version 0.3.0

Released on January 15, 2016.

  • Fixed an AttributeError during handling error sent by server. [#4]

Version 0.2.2

Released on November 14, 2014.

  • Added -v/--version option.
  • Fixed an AttributeError during handling error from server. [#2, #3 by Lee Jaeyoung]

Version 0.2.1

Released on June 29, 2014.

  • Added geofront-cli scp command.
  • Added the short option -S for --ssh.
  • It becomes to no more depend on dirspec. Instead it's simply bundled together.
  • geofront-cli now prints a usage description when no subcommand specified.

Version 0.2.0

Released on May 3, 2014.

  • Added handling of unfinished authentication error.
  • Added handling of incompatible protocol version.

Version 0.1.1

Released on April 22, 2014.

  • Fixed Python 2 incompatibility.
  • Added warning for non-SSL server URL.

Version 0.1.0

First pre-alpha release. Released on April 21, 2014.