Begrænsning af kommandoer med SSH Keys

Ofte sker det at man har brug for at have sine brugere i lidt kortere snor end ellers, jeg sider f.eks. og implementerer en løsning hvor vi laver et API via SSH.

Her vil jeg gerne sikre mig at brugerne kun har adgang til de ting jeg syntes de skal have adgang til, heldigvis er der support for det i SSH. Du kan nemlig tilknytte paremetre til de enkelte SSH Nøgler. Det gøres ved f.eks. at skrive flg. foran ssh-rsai authorized_keys filen:

no-port-forwarding,no-X11-forwarding,no-pty,command="/opt/test.php" ssh-rsa AAA...

og så kunne man eksempelvis lave en /opt/test.php der ser således ud:

#!/usr/bin/php
<?php

switch(getenv("SSH_ORIGINAL_COMMAND"))
{
  case "janeway":
    print "Doing voyager stuff ...\n";
    break;
  case "kirk":
    print "Doing enterprise stuff ...\n";
    break;
  default:
    print "Sorry, no cigar!\n";
    break;
}

?>

Og det kunne så se således ud i en test:

test@PaddleBoat:~$ ssh root@web03.mikjaer.com kirk
Doing enterprise stuff ...
test@PaddleBoat:~$ ssh root@web03.mikjaer.com janeway
Doing voyager stuff ...

Enjoy 😉

Dette indlæg blev udgivet i Knowledge Base, Linux, Old Base. Bogmærk permalinket.

Skriv et svar