SSH pripojenie pomocou skratky

O čo ide

Na linuxové servery, či už VPS alebo EC2 od Amazonu alebo Droplety v Digital Oceane a pod., sa možno pripájať cez SSH aliasy. Nemusíme si potom pamätať adresy serverov, mená používateľov alebo cesty ku intentity súborom.

1. Bežne dlhý SSH príkaz (pripája sa na vymyslený linux server):

$ ssh ubuntu@ec2-11-111-11-111.eu-west-1.compute.amazonaws.com -i ~/.ssh/myproject.pem

2. A rovnaký výsledok s použitím krátkeho aliasu:

$ ssh myproject

Ako pridať vlastný alias

Stačí do súboru ~/.ssh/config pridať alias na myproject:

Host myproject
  Hostname ec2-11-111-11-111.eu-west-1.compute.amazonaws.com
  User ubuntu
  IdentityFile ~/.ssh/myproject.pem
  StrictHostKeyChecking no

Následne bude fungovať pripojenie pomocou príkazu $ ssh myproject.

  • Za Host, Hostname a User je je potrebné dosadiť si vlastné hodnoty.
  • User, ale aj ostatné hodnoty sa dajú prepísať pri volaní príkazu, napríklad $ ssh jozo@myproject pripojí prednostne používateľa jozo.
  • IdentityFile nie je povinné uvádzať, potom sa použije default ~/.ssh/id_rsa.
  • StrictHostKeyChecking no pozor, vypína sa tým kontrola voči .known_hosts (man-in-the-middle útoky), ale zase rieši to problémy s fingerprintami pri zmene app servera. Možno vynechať a kontrola ostane zapnutá.

Viac serverov – príklad

V prípade väčšieho počtu serverov je možné súbor jemne organizovať. Napríklad, ak sa starám o dva weby – CMS a Bazár a pre každý mám staging a production server, pridám štyri aliasy.

Súbor ~/.ssh/config:

Host cms-production
  Hostname ec2.a.amazonaws.com
  User ubuntu

Host cms-staging
  Hostname ec2.b.amazonaws.com
  User ubuntu

Host bazar-production
  Hostname ec2.c.amazonaws.com
  User ubuntu

Host bazar-staging
  Hostname ec2.d.amazonaws.com
  User ubuntu

Potom sa môžem na ktorýkoľvek pripojiť spamäti. Napríklad na staging CMS-ka iba zadám $ ssh cms-staging.

Toto bol jednoduchý trik k programu OpenSSH, ako za pomoci config súboru zadefinovať SSH aliasy, teda skratky.
Ďakujem za čítanie.