Archiv pro štítek: SSH

Přihlášení na SSH pomocí expectu

Nechci psát heslo dvakrát

Spravuji linuxové servery na kterých je zakázané přihlášení pomocí uživatele root. Přihlásit se na takového uživatele pro mne znamená:

  1. Přihlásit se pomocí SSH pomocí mého osobního účtu = 1x zadávám svoje heslo
  2. Po přihlášení napsat příkaz sudo -i a znovu zadat heslo = 1x zadávám svoje heslo

Musím tedy dvakrát po sobě zadávat stejné heslo. Proto jsem si udělal script v expectu, kterému sdělím svoje heslo pouze jednou. Script se následně pod mým loginem přihlásí na server a spustí příkaz sudo -i, kterému pošle heslo které jsem mu sdělil. V následujícím scriptu se heslo čte ze stdin, ale je možné ho načítat i ze souboru (nedoporučuji):

Vytvoření aliasu pro bash

Vytvořil jsem si taky jednoduchý bash alias proto abych do skriptu nemusel psát natvrdo svůj login. Tento wrapper vypadá následovně:

Wrapper je potřeba umístit do souboru .bash_aliases v home adresáři.

Jak se nyní přihlašovat

Nyní stačí zavolat příkaz ssh-login server.domena.tld, příkaz se zeptá jen jednou na heslo:

Po úspěšném přihlášení mi skript dovolí s root shellem interagovat.

Jak protunelovat HTTPS proxy

Ve vnitřní síti se využívá k přístupu na internet HTTP/HTTPS proxy server, který pro autentizaci vyžaduje doménu, uživatelské jméno a heslo. Jak překonat omezení proxy? Doporučuji nainstalovat skvělý prográmek corkscrew:

Tato utilita umí tunelovat TCP provoz skrz HTTP/HTTPS proxy. Stačí vytvořit záznam v konfiguračním souboru pro SSH ~/.ssh/config:

Na druhé straně musí běžet SSH server na portu 443 (aby se klient dostal přes proxy – proxy si myslí že jde o HTTPS traffic). Jako poslední krok je dobré nahrát SSH klíč na server (lepší je využít klíč než heslo) a vytvořit soubor ~/.corkscrew-auth s údaji pro přihlášení k proxy serveru:

Vzdálenému SSH serveru je potřeba najít a nastavit v konfiguraci naslouchání na portu 443 a povolení TCP forwardingu:

Nyní už je možné připojit se z vnitřní sítě SSH klientem, po připojení vznikne SOCKS proxy na localhostu na portu 8080:

Jako poslední krok už stačí jenom tuto vzniklou SOCKS proxy nastavit v prohlížeči a můžete začít fungovat.

Host1Free Debian Wheezy – Could not load host key

Používám Free VPS od http://www.host1free.com, mám na něm nainstalovaný Debian Wheezy, při restartu ssh serveru mě zarazila tato hláška:

Jak tenhle klíč vygenerovat? Jednoduše:

 

HP iLO a XML data

Někdy je potřeba z HP serveru vyčíst pomocí iLO informace jestli je server zapnutý, jaké je jeho sériové číslo, jestli má nainstalovanou iLO licenci apod… donedávna jsem používal například python-hpilo, nebo expect který se připojil přes SSH. Obojí mělo velkou nevýhodu – musel jsem znát přihlašovací jméno a heslo, které má každé iLO defaultně jiné (náhodné).

Našel jsem pro mě novou a docela překvapivou informaci – pokud v prohlížeči zadáte IP adresu iLO a přidáte na konec URL adresy /xmldata?item=All tak uvidíte následující informace:

Ještě zábavnější je zkusit na konec URL přidat /xmldata?item=CpqKey a dostanete něco podobného:

Ano, vidíte licenční klíč k iLO, který se kupuje v balíčku za 26 USD a umožňuje pokročilé funkce jako třeba Virtual Media, nebo Remote Console 🙂 Je zajímavé kolik lidí ho veřejně vystavuje na internetu… Nápad mít iLO ve veřejném internetu mi přijde dost nešťastný.

Najít nějaké takové iLO netrvá ani 20 sekund… 

Samozřejmě se zobrazování těchto informací dá vypnout, ale ve výchozím nastavení to má každé iLO zapnuté a málo administrátorů vůbec ví, že něco takového existuje.

K čemu je to užitečné? Já například tyto informace využívám k zjištění jestli je server zapnutý a nepotřebuji k tomu heslo, což je fajn.

HP iLO a virtual media

Pokud používáte HP iLO může se vám někdy hodit jeho funkce virtual media (funguje pouze při zakoupení licence – v příkladu používám trial licenci, volně dostupnou na internetu), umožnující připojit ISO, popřípadě IMG obraz disku a následně z něj nabootovat systém. Obraz lze připojit buď přes webové rozhraní (naklikat) nebo se přes SSH připojit k iLO a udělat to pomocí příkazů takto:

Jak to samé udělat pomocí RIBCL – vytvořit xml soubor, aby bylo možné nastavit najednou třeba padesát serverů, které nabootují ze sítě HP Scripting Toolkit?

 

Putty a ssh:// protokol

Používáte Putty? Potřebujete při klepnutí na odkaz začínající ssh:// otevřít danou adresu s parametry pomocí Putty? Možná vám pomůže můj jednoduchý bat script:

Jak to použít

Soubor stačí uložit pod libovolným názvem s příponou .bat do libovolné složky společně s putty.exe a poprvé spustit. Není potřeba dělat nic dalšího. Ozkoušeno pouze na Windows 7 x64.

Jak to funguje

Po prvním spuštění se Putty přidá do registru Windows. Následně se při každém klepnutí na ssh:// odkaz volá bat soubor který spustí putty.exe s parametry.