All Projects → operasoftware → Ssh Key Authority

operasoftware / Ssh Key Authority

Licence: apache-2.0
A tool for managing SSH key access to any number of servers.

Projects that are alternatives of or similar to Ssh Key Authority

Pacman-Game
This is a pacman game made using HTML, CSS and Javascript only.
Stars: ✭ 42 (-88.1%)
Mutual labels:  web-application
SyncPaint
A web app for synchronized group drawing. Draw together with other people in real time.
Stars: ✭ 42 (-88.1%)
Mutual labels:  web-application
Ofelia
A real-time cross-platform creative coding tool for multimedia development
Stars: ✭ 269 (-23.8%)
Mutual labels:  web-application
public-information-map-template-js
An ArcGIS Online mapping template to showcase social media on a map for disaster response and public information.
Stars: ✭ 66 (-81.3%)
Mutual labels:  web-application
purescript-swerve
Swerve is a library that offers a type-level DSL for describing server and client web applications. Inspired by Haskell's Servant library.
Stars: ✭ 20 (-94.33%)
Mutual labels:  web-application
servant-beam-realworld-example-app
Exemplary fullstack Medium.com clone powered by Servant and Beam
Stars: ✭ 33 (-90.65%)
Mutual labels:  web-application
kanji-web-app
Angular.js kanji web application
Stars: ✭ 45 (-87.25%)
Mutual labels:  web-application
Nosqlclient
Cross-platform and self hosted, easy to use, intuitive mongodb management tool - Formerly Mongoclient
Stars: ✭ 3,399 (+862.89%)
Mutual labels:  web-application
zunzunsite3
A Django site in Python 3 for curve fitting 2D and 3D data that can output source code in several computing languages and run a genetic algorithm for initial parameter estimation. Includes orthogonal distance and relative error regressions. Generates PDF files and surface animations. Based on code from zunzun.com.
Stars: ✭ 17 (-95.18%)
Mutual labels:  web-application
Arachni
Web Application Security Scanner Framework
Stars: ✭ 2,942 (+733.43%)
Mutual labels:  web-application
full-stack-web-jetbrains-night-sample
Full-stack demo application written with Kotlin MPP
Stars: ✭ 226 (-35.98%)
Mutual labels:  web-application
reactjs-portfolio
Welcome to my portfolio react.js repository page.
Stars: ✭ 109 (-69.12%)
Mutual labels:  web-application
Php Security Check List
PHP Security Check List [ EN ] 🌋 ☣️
Stars: ✭ 262 (-25.78%)
Mutual labels:  web-application
ghost-on-heroku
One-button Heroku deploy for the Ghost 3.2.0 blogging platform.
Stars: ✭ 232 (-34.28%)
Mutual labels:  web-application
Mern Social
A MERN stack based social media application [Full-Stack React Projects]
Stars: ✭ 288 (-18.41%)
Mutual labels:  web-application
typeorm-example
Example Web API for TypeORM + TypeDI + routing-controllers
Stars: ✭ 27 (-92.35%)
Mutual labels:  web-application
web
Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.
Stars: ✭ 33 (-90.65%)
Mutual labels:  web-application
Dashr
Dash for R - An R interface to the Dash ecosystem for creating analytic web applications
Stars: ✭ 337 (-4.53%)
Mutual labels:  web-application
Goahead
GoAhead Web Server
Stars: ✭ 321 (-9.07%)
Mutual labels:  web-application
Graphviz Visual Editor
A web application for interactive visual editing of Graphviz graphs described in the DOT language.
Stars: ✭ 261 (-26.06%)
Mutual labels:  web-application

SKA - SSH Key Authority

Please see the Security Advisories section below for a recently addressed security issue

A tool for managing user and server SSH access to any number of servers.

Features

  • Easily manage SSH key access for all accounts on your servers.
  • Manage user access and server-to-server access rules.
  • Integrate with your LDAP directory service for user authorization.
  • Automatically remove server access from people when they leave your team.
  • Provides an easy interface for your users to upload their public keys.
  • Designate server administrators and let them manage access to their own server.
  • Create group-based access rules for easier management.
  • Specify SSH access options such as command=, nopty etc on your access rules.
  • All access changes are logged to the database and to the system logs. Granting of access is also reported by email.
  • Be notified when a server becomes orphaned (has no active administrators).

Demo

You can view the SSH Key Authority in action on the demonstration server.

Use one of the following sets of username / password credentials to log in:

  • testuser / testuser - normal user with admin access granted to a few servers
  • testadmin / testadmin - admin user

All data on this demonstration server is reset nightly at 00:00 UTC.

Requirements

  • An LDAP directory service
  • Apache 2.2 or higher
  • PHP 5.6 or higher
  • PHP JSON extension
  • PHP LDAP extension
  • PHP mbstring (Multibyte String) extension
  • PHP MySQL extension
  • PHP ssh2 extension
  • MySQL (5.5+), Percona Server (5.5+) or MariaDB database

Installation

  1. Clone the repo somewhere outside of your default Apache document root.

  2. Add the following directives to your Apache configuration (eg. virtual host config):

    DocumentRoot /path/to/ska/public_html
    DirectoryIndex init.php
    FallbackResource /init.php
    
  3. Create a MySQL user and database (run in MySQL shell):

    CREATE USER 'ska-user'@'localhost' IDENTIFIED BY 'password';
    CREATE DATABASE `ska-db` DEFAULT CHARACTER SET utf8mb4;
    GRANT ALL ON `ska-db`.* to 'ska-user'@'localhost';
    
  4. Copy the file config/config-sample.ini to config/config.ini and edit the settings as required.

  5. Set up authnz_ldap for your virtual host (or any other authentication module that will pass on an Auth-user variable to the application).

  6. Set scripts/ldap_update.php to run on a regular cron job.

  7. Generate an SSH key pair to synchronize with. SSH Key Authority will expect to find the files as config/keys-sync and config/keys-sync.pub for the private and public keys respectively.

  8. Install the SSH key synchronization daemon. For systemd:

    1. Copy services/systemd/keys-sync.service to /etc/systemd/system/
    2. Modify ExecStart path and User as necessary. If SSH Key Authority is installed under /home, disable ProtectHome.
    3. systemctl daemon-reload
    4. systemctl enable keys-sync.service

    for sysv-init:

    1. Copy services/init.d/keys-sync to /etc/init.d/
    2. Modify SCRIPT path and USER as necessary.
    3. update-rc.d keys-sync defaults

Usage

Anyone in the LDAP group defined under admin_group_cn in config/config.ini will be able to manage accounts and servers.

Key distribution

SSH Key Authority distributes authorized keys to your servers via SSH. It does this by:

  1. Connecting to the server with SSH, authorizing as the keys-sync user.
  2. Writing the appropriate authorized keys to named user files in /var/local/keys-sync/ (eg. all authorized keys for the root user will be written to /var/local/keys-sync/root).

This means that your SSH installation will need to be reconfigured to read authorized keys from /var/local/keys-sync/.

Please note that doing so will deny access to any existing SSH public key authorized in the default ~/.ssh directories.

Under OpenSSH, the configuration changes needed are:

AuthorizedKeysFile /var/local/keys-sync/%u
StrictModes no

StrictModes must be disabled because the files will all be owned by the keys-sync user.

The file /var/local/keys-sync/keys-sync must exist, with the same contents as the config/keys-sync.pub file in order for the synchronization daemon to authenticate.

Screenshots

Homepage overview

Homepage overview

Server listing

Server listing

Server account access management

Server account access management

Activity log

Activity log

Getting started guide for new users

Getting started guide for new users

Security advisories

License

Copyright 2013-2017 Opera Software

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].