Code Monkey home page Code Monkey logo

ssh-oidc's Introduction

What is ssh-oidc

It's a set of tools that allows (you guessed it) ssh with OIDC. What you might not have guessed: We go for the difficult-to-implement but simplest-to-use approach.

Usability

  • No modification of ssh-client (except for Windows where we provide an extension to putty)
  • No modification of ssh-server
  • No need for OIDC client registration on the server
  • No need to enter passwords more than once after reboot

The final usage is as simple as:

mccli ssh <hostname>

Client Installation

For testing the client, we provide a demonstration server at ssh-oidc-demo server

On the client you will need two basic tools:

  • oidc-agent: To obtain oidc AccessTokens
  • motley-cue command-line tool (mccli) for
    • getting AccessTokens
    • communicating with the remote motley-cue
    • Calling SSH with an AccessToken

oidc-agent

Please follow installation instructions at https://indigo-dc.gitbook.io/oidc-agent/installation

Useful commandlines for generating an oidc-agent configuration are listed here. (You may add --flow device if you run oidc-agent on a remote host.)

  • EGI Check-in:
    oidc-gen --pub --iss https://aai.egi.eu/oidc \
        --scope "openid profile email offline_access \
            eduperson_entitlement eduperson_scoped_affiliation eduperson_unique_id" egi
    
  • WLCG:
    oidc-gen --pub  --issuer https://wlcg.cloud.cnaf.infn.it/ \
        --scope "openid profile offline_access wlcg.groups wlcg \
            eduperson_entitlement eduperson_scoped_affiliation " wlcg
    
  • Helmholtz-AAI:
    oidc-gen --pub --iss https://login.helmholtz.de/oauth2/ \
        --scope "openid profile email offline_access \
            eduperson_entitlement eduperson_scoped_affiliation eduperson_unique_id" helmholtz
    
  • Google:
    oidc-gen --pub --iss https://accounts.google.com/ --flow device  --scope max google
    

mccli

Install with

  • pip install mccli

Use either of:

  • mccli ssh ssh-oidc-demo.data.kit.edu --iss https://aai.egi.eu/oidc
  • mccli ssh ssh-oidc-demo.data.kit.edu --oidc egi
  • ACCESS_TOKEN=<access_token> mccli ssh ssh-oidc-demo.data.kit.edu

It is as simple as this!

Server Installation

Packages are available at https://repo.data.kit.edu

Follow the instructions there to support the correct repository for apt or yum.

The currently supported Linuxes are:

  • Debian (stable + testing)
  • Ubuntu (20.04 + 18.04)
  • Centos (7 + 8)

Installation is mostly a matter of installing the packages:

  • motley-cue and pam-ssh-oidc

Details are described in the linked chapters pam-ssh-oidc and motley-cue

More Material

We have two presentations:

Acknowledgements

This page documents a set of tools that have been developed in a joint effort of:

  • Karlsruhe Institute of Technology (KIT)
  • Poznan Supercomputing and Networking Centre (PSNC)
  • EOSC-Synergy
  • Praceclab PL
  • Helmholtz Federated IT Services (HIFIS)
  • Helmholtz Data Federation

ssh-oidc's People

Contributors

marcvs avatar dianagudu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.