SHH

Secret Squirrel

This is a command line utility for managing secure information such as accounts, passwords as individual files so that they can be easily managed in a version control repository.

You won’t be hiding anything from the NSA with this level of encryption so it isn’t recommended that you make your repository publicly accessible.

Now with more tab completion and multi line editing!

Usage

Here you sit expectantly in front of a computer at the command line.

Install

gem install shh

(you may need to install gemcutter first)

Launch

Open all ‘secrets’ stored in ~/.secret

> shh

Opens all ‘secrets’ stored in foo/.secret

> shh foo

Authenticate

Enter your passphrase

This passphrase will be used to encrypt and decrypt all of your secrets so don’t make it too obvious.

Listing mode

This mode allows you to view and edit ‘entries’ (which are encrypted hashes stored in files)

> list
bitbucket (260f34de-6779-4367-af2a-44184dec1cc1)
amazon (291a3e6c-2c7b-4960-a146-1f6635d9a74e)
yahoo (2fe408e7-7f2b-4dc0-854a-c92c21f131ae)
evernote (41ad0a21-eafc-4f70-9b0d-0251be207b9e)
gmail (8b35c1f2-851d-40fc-bd12-c2aad12c370a)
rememberthemilk (a499f612-d034-4e49-82a8-6967d29653a1)
  • list - list entries

  • edit <name> - edit or create entry

  • view <name> - view entry

  • quit

Viewing mode

This mode allows you to view (but not edit) an existing entry

> view bitbucket
(bitbucket) > list
id,name,password,username
(bitbucket) > view username
markryall
list keys, show key, copy key or quit?  c password
  • list - show entry keys

  • view <key> - view entry value on screen

  • copy <key> - copy entry value to clipboard

  • launch <key> - launch entry value in default browser (available if it starts with http)

  • run <key> - execute ruby script (available if it starts with #!/usr/bin/env ruby)

  • quit

Editing mode

This mode is viewing mode plus some editing commands

> edit bitbucket
(bitbucket) > set foo
Enter new value for foo
bar
(bitbucket) > delete foo
  • edit <key> - edit or create key using text editor (notepad or EDITOR)

  • set <key> - edit or create key from prompt

  • delete <key> - remove a key

Quitting mode

You don’t want to be a quitter

Scripting

In a script the following objects are available:

  • splat.clipboard = <text> - allows content to be copied to the clipboard

  • splat.browser - a watir compatible browser

  • hash - the current selected entry

Example:

browser = splat.browser
browser.goto 'http://www.github.com/login'
browser.text_field(:id, 'login_field').set hash['username']
browser.text_field(:id, 'password').set hash['password']
browser.button(:name, 'commit').click

Future plans for world domination

  • Add some color

  • Add help

  • add some source control (hg/git) commands

  • add commands for displaying history of entries