Skip to content

Aetherinox/monkeysphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monkeysphere

The Monkeysphere project's goal is to extend OpenPGP's web of trust to new areas of the Internet to help us securely identify each other while we work online.

Specifically, monkeysphere currently offers a framework to leverage the OpenPGP web of trust for OpenSSH authentication.

In other words, it allows you to use secure shell as you normally do, but to identify yourself and the servers you administer or connect to with your OpenPGP keys. OpenPGP keys are tracked via GnuPG, and monkeysphere manages the known_hosts and authorized_keys files used by OpenSSH for authentication, checking them for cryptographic validity.




Dependencies

  • GnuPG >= 2.1.17
  • find (POSIX or GNU should both work)
  • Perl
  • lockfile-progs or procmail's lockfile
  • Bash
  • OpenSSH's ssh-keygen utility (>= 6.0)
  • base64 (coreutils or fourmilab)



Build

To build MonkeySphere; install the following dependencies:

sudo apt update && \ sudo apt install \ git-buildpackage \ libgcrypt20-dev \ libgpgme-dev \ libassuan-dev \ debhelper-compat \ socat \ libcrypt-openssl-rsa-perl

Set permissions for the following files; otherwise tests will fail:

sudo chmod u+x \ tests/home/testuser/.ssh/proxy-command \ tests/basic \ tests/keytrans \ src/monkeysphere-host \ src/monkeysphere-authentication \ src/openpgp2ssh \ src/monkeysphere

Tests can be ran by going to the root project folder and running:

cd monkeysphere make clean make check make test

When the tests have successfully ran, you will get a large number of prints which will take approximately 1 minute to run; finishing with:

-------------------- ssh continues below -------------------- debug1: Remote protocol version 2.0, remote software version OpenSSH_8.9p1 Ubuntu-3ubuntu0.10 debug1: compat_banner: match: OpenSSH_8.9p1 Ubuntu-3ubuntu0.10 pat OpenSSH* compat 0x04000000 debug1: Authenticating to testhost.example:22 as 'aetherinox' debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: algorithm: curve25519-sha256 debug1: kex: host key algorithm: ssh-ed25519 debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: SSH2_MSG_KEX_ECDH_REPLY received debug1: Server host key: ssh-ed25519 SHA256:tvtnPG6qwKRDudlrzGOYQMjOi4SRTyAfp804Eh2UceU debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory No ED25519 host key is known for testhost.example and you have requested strict checking. Host key verification failed. ##### ssh connection test PASSED. returned: 255 ##################################################  Monkeysphere basic tests completed successfully! ################################################## ### removing temp dir...

Package can be built by committing the changes:

make clean dpkg-source --commit

You will be prompted to update the changelog. Once the changelog has been modified to reflect the newest changes, then build the .deb

gbp buildpackage \ --git-debian-branch="debian/main" \ --git-ignore-new \ --git-upstream-tree="debian/main" \ -uc \ -us

The built packages are now one folder back from the root project folder.




Install

You can install your current source version by running:

cd monkeysphere make install

You will then have the binary packages installed on your system ready to accept input.




Troubleshoot

The following lists errors or issues you may potentially come up against, and solutions to rectify the situation.


No Pinentry

When running Monkeysphere tests, you may get the following errors:

gpg: key E00B5EEEBA79B482: public key "Monkeysphere Test Suite Test User (DO NOT USE!!!) <testuser@example.net>" imported gpg: key E00B5EEEBA79B482/E00B5EEEBA79B482: error sending to agent: No pinentry gpg: error reading '[stdin]': No pinentry gpg: import from '[stdin]' failed: No pinentry gpg: Total number processed: 0 gpg: imported: 1 gpg: secret keys read: 1 gpg: no ultimately trusted keys found

To fix, adjust the permissions on two files with:

sudo chmod u+x \ tests/phony-pinentry \ tests/phony-pinentry-nopass

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 3

  •  
  •  
  •