SSH je zabezpečený protokol používaný jako primární prostředek pro vzdálené připojení k serverům Linux. Poskytuje textové rozhraní vytvořením vzdáleného shellu. Po připojení jsou všechny příkazy, které zadáte na místním terminálu, odeslány na vzdálený server a tam provedeny.
Ověření
Klienti se obecně ověřují buď pomocí hesel nebo klíčů SSH. Hesla jsou méně bezpečná, proto se vždy doporučují klíče ssh.
Pro ověření pomocí klíčů SSH musí mít uživatel na svém místním počítači pár klíčů SSH. Na vzdáleném serveru musí být veřejný klíč zkopírován do souboru v domovském adresáři uživatele na adrese ~/.ssh/authorized_keys
. Tento soubor obsahuje seznam veřejných klíčů, jeden na řádek, které jsou oprávněny se přihlásit k tomuto účtu.
Generování páru klíčů SSH
Vygenerovat kombinaci hospodských/soukromých klíčů
ssh-keygen
# With options (Larger Number of Bits 4096 and file name)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix
# Explicit comment
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix -C citizix_key
Výše uvedené příkazy vygenerují pár klíčů RSA SSH. Pokud umístění souboru není zadáno, budou umístěny v .ssh
skrytý adresář v domovském adresáři vašeho uživatele. Výchozí soubory jsou:
~/.ssh/id_rsa
:Soukromý klíč. NESDÍLEJTE TENTO SOUBOR!~/.ssh/id_rsa.pub
:Přidružený veřejný klíč. To lze volně sdílet bez následků.
Odebrání nebo změna přístupové fráze u soukromého klíče
Pokud jste pro svůj soukromý klíč vygenerovali přístupovou frázi a chcete ji změnit nebo odstranit, použijte následující příkazy:
ssh-keygen -p
ssh-keygen -p -f ~/.ssh/id_citizix
Zadejte starou přístupovou frázi, kterou chcete změnit. Poté budete vyzváni k zadání nové přístupové fráze, nebo stačí stisknout Enter a nechat prázdné.
Zkontrolujte otisk klíče SSH
Každý pár klíčů SSH sdílí jeden kryptografický „otisk“, který lze použít k jedinečné identifikaci klíčů. Chcete-li zjistit otisk klíče SSH, zadejte:
ssh-keygen -l
ssh-keygen -l -f ~/.ssh/id_citizix
Kopírování vašeho veřejného klíče SSH na server
Zkopírování veřejného klíče na vzdálený server umožní přihlášení bez hesla:
# This will prompt for a password
ssh-copy-id [email protected]_host
Po zadání hesla bude obsah vašeho klíče ~/.ssh/id_rsa.pub připojen na konec souboru ~/.ssh/authorized_keys uživatelského účtu. Nyní se můžete přihlásit bez hesla:ssh [email protected]_host
Kopírování vašeho veřejného klíče SSH na server bez SSH-Copy-ID
Pokud nemáte k dispozici nástroj ssh-copy-id, ale přesto máte přístup SSH ke vzdálenému serveru na základě hesla, můžete zkopírovat obsah svého veřejného klíče jiným způsobem.
-
Zkopírujte obsah do spodní části
~/.ssh/authorized_keys
vzdáleného serveru soubor. -
Můžete vypsat obsah klíče a přenést jej do příkazu ssh. Připojit k
~/.ssh/authorized_keys
soubor.cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Další hacky
Vygenerujte veřejný klíč ssh ze soukromého klíče:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
Spuštění jednoho příkazu na vzdáleném serveru
ssh [email protected]_host command_to_run
Přihlášení k serveru s jiným portem
ssh -p port_num [email protected]_host
Pomocí konfiguračního souboru:
# File ~/.ssh/config
Host remote_alias
HostName remote_host
Port port_num
Přidání klíčů SSH do agenta SSH, abyste se vyhnuli psaní přístupové fráze
Pokud máte na svém soukromém klíči SSH přístupovou frázi, budete k jejímu zadání vyzváni pokaždé, když ji použijete pro připojení ke vzdálenému hostiteli.
Abyste to nemuseli opakovat, můžete spustit agenta SSH. Tento malý nástroj uloží váš soukromý klíč poté, co poprvé zadáte heslo. Bude k dispozici po dobu trvání vaší relace terminálu, což vám umožní připojit se v budoucnu bez opětovného zadávání přístupové fráze.
Chcete-li spustit agenta SSH, zadejte do relace místního terminálu následující:
eval $(ssh-agent)
Nyní přidejte svůj soukromý klíč k agentovi, aby mohl spravovat váš klíč:
ssh-add
ssh-add -f ~/.ssh/id_citizix
Budete muset zadat své přístupové heslo (pokud je nastaveno). Poté bude váš soubor identity přidán do agenta, což vám umožní používat váš klíč k přihlášení, aniž byste museli znovu zadávat přístupové heslo.
Přeposlání vašich přihlašovacích údajů SSH k použití na serveru
Pokud se chcete připojit bez hesla k jednomu serveru z jiného serveru, budete muset předat informace o klíči SSH. To vám umožní ověřit se na jiném serveru prostřednictvím serveru, ke kterému jste připojeni, pomocí přihlašovacích údajů na vašem místním počítači.
Musíte mít spuštěného agenta SSH a váš klíč SSH přidán k agentovi. Poté se připojte k prvnímu serveru pomocí volby -A
k předání vašich přihlašovacích údajů na server pro tuto relaci
ssh -A [email protected]_host