This is an old revision of the document!
Každému se již určitě někdy stalo, že dostal systém do stavu, ve kterém se nemůže připojit na SSH. Ať už kvůli vypnutému sshd, špatně nastaveným pravidlům v iptables či ztracenému SSH klíči. Naštěstí se přes vpsAdmin můžeme napojit přímo na konzoli VPS.
Konzole je k dispozici buď přes webové rozhraní nebo přímo z terminálu přes utilitu vpsfreectl. Pokud je na výběr, doporučuji použít pro přístup na konzoli vpsfreectl. Konzole funguje v terminálu mnohem spolehlivěji a responzivněji, než-li ve webovém prohlížeči.
Konzole je perzistentní. To znamená, že v ní můžeme sledovat proces vypnutí a zapnutí VPS. Odpojení od konzole také uživatele neodhlásí, pokud před odpojením nedojde k úmyslnému odhlášení.
Jak vpsfreectl
nainstalovat je popsáno v článku o
API.
<html> <iframe width=“560” height=“315” src=“https://www.youtube.com/embed/Eg_i_iX7l6I” frameborder=“0” allowfullscreen></iframe> </html>
Na konzoli VPS se připojíme následujícím příkazem:
$ vpsfreectl vps remote_console <VPS_ID>
Kde <VPS_ID>
nahradíme ID VPS, na jehož konzoli se chceme připojit.
Konzole lze uzavřit postupným stiskem kláves ENTER ESC .
(enter escape
tečka). Toto je jediný způsob, jakým se dá konzole odpojit (kromě zavření
okna terminálu).
Aby konzole fungovala co nejlépe, je důležité mít na VPS stejné locale
,
jaké používá terminál, z něhož se připojujeme. Hlavní je kódování -
pokud je na obou stranách jiné, budou se místo některých znaků zobrazovat
otazníky, apod.
vpsAdmin nemůže konzoli předat proměnnou prostředí $TERM
. Některé TUI
aplikace se však hodnotě této proměnné přizpůsobují a na první pohled se tak
může zdát, že aplikace či konzole nefunguje správně. Např. aby v mc
fungovala myš a barvy, je zapotřebí buď nastavit TERM=xterm
, nebo si tento
režim vynutit přepínačem mc -x
.
Automatické nastavení hodnoty proměnné $TERM
po přihlášení do konzole lze
zařídit pomocí .bashrc
:
cat <<EOF >> ~/.bashrc [ "`tty`" == "/dev/console" ] && export TERM=xterm EOF
V aktuálních šablonách distribucí je tato konzole většinou již přednastavená. U starších šablon je potřeba ji povolit ručně.
Do souboru /etc/inittab
vložíme tento řádek:
1:2345:respawn:/sbin/getty 38400 tty0
Do souboru /etc/init/tty.conf
vložíme tyto řádky:
stop on runlevel [S016] respawn instance $TTY exec /sbin/mingetty $TTY
Dále do souboru /etc/init/start-ttys.conf
vložíme:
start on stopped rc RUNLEVEL=[2345] env ACTIVE_CONSOLES=/dev/tty[0-6] env X_TTY=/dev/tty1 task script . /etc/sysconfig/init for tty in $(echo $ACTIVE_CONSOLES) ; do [ "$RUNLEVEL" = "5" -a "$tty" = "$X_TTY" ] && continue initctl start tty TTY=$tty done end script
Do souboru /etc/inittab
vložíme tento řádek:
# vpsFree remote console c0:2345:respawn:/sbin/agetty --noreset 38400 tty0
A po restartu by konzole již měla fungovat.
U aktuální šablony Ubuntu toto není potřeba.
Vytvoříme soubor /etc/init/tty0.conf
, do kterého vložíme:
start on stopped rc or RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 38400 tty0 vt102
Službu spustíme pomocí sudo start tty0
. Po restartu se bude zapínat
automaticky.
Pokud konzole nefunguje, nevypisuje všechny znaky nebo nedovoluje přihlášení,
je pravděpodobně spuštěno více instancí getty, které se hádají o vstup.
Řešením je vypnout nadbytečné getty v /etc/inittab
.