GNU/Linux >> Znalost Linux >  >> Linux

přidání hesla do .ssh/config

Řešení 1:

Ne, neexistuje žádná metoda, jak zadat nebo poskytnout na příkazovém řádku heslo neinteraktivním způsobem pro autentizaci ssh pomocí vestavěného mechanismu openssh. Alespoň ne jeden, o čem vím. Heslo můžete zakódovat do očekávaného skriptu, ale ani to není dobré řešení.

Určitě byste chtěli použít páry klíčů pro autentizaci bez hesla, jak uvedl Michael, nakonec soukromý klíč je do značné míry velké heslo v souboru.

Řešení 2:

Abychom se vyhnuli řetězci komentářů:Ano, toto je nejisté (ani pravděpodobně nejisté). Důrazně bych vám doporučil, abyste to provedli pouze v laboratorní situaci v izolované síti nebo v podobné situaci, která nezahrnuje produkční servery nebo potenciálně produkční server bez úplného resetu/formátu.

Chtěl jsem to nastavit, protože si nemyslím, že můj přepínač 2950 podporuje soukromé/veřejné klíče a doufám, že v určitém okamžiku tyto znalosti získám, ale zatím tam nejsem.

Toho lze dosáhnout pomocí aliasu a sshpass.

  1. Nainstalujte sshpass
  2. Změňte soubor .ssh/config soubor obsahovat uživatelské jméno uvedené v otázce
  3. Přidejte alias do svého terminálu (použil jsem .bashrc a nedoporučoval bych nastavení gloabl)
  4. Pro přihlášení do cíle použijte alias

Můj příklad alias je:

alias ssc='sshpass -pcisco ssh'

Kde je heslo "cisco". Všimněte si, že mezi -p a heslem není mezera.

Použití je (s odkazem na otázku):

ssc server1

Poznámka:Toto odpovídá na otázku v názvu pouze pro ty, kteří používají vyhledávače. Pokud používáte servery jako v příkladu otázky, měly by být použity páry soukromý/veřejný klíč a nikoli tato odpověď

Řešení 3:

Ano, jak je uvedeno výše, neexistuje způsob, jak jednoduše uložit heslo. Pro autorizaci bych doporučil použít ssh klíč.

nejprve vygenerujte svůj klíč :

ssh-keygen

Poté zkopírujte klíč na své servery/desktopy:

ssh-copy-id -i .ssh/id_rsa.pub [email protected]:

To je vše. Už nikdy nebudete požádáni o heslo.

Doporučuji také obecně odstranit autorizaci heslem, ale to je na vás.

Řešení 4:

Neexistuje způsob, jak to udělat pomocí ssh, je to tak nejisté, jak jen může být.

Jak Danila zmínila, můžete použít očekávat skripty, ale já bych se tím neobtěžoval.

Zajímalo by mě, čeho se snažíte dosáhnout? Chcete přeskakovat z jednoho serveru na druhý? V tomto případě chcete nastavit a používat ssh-agent na vaší pracovní stanici a povolit přesměrování agenta na cílových hostitelích; tímto způsobem bude výměna pověření směrována k vašemu místnímu agentovi, aniž byste museli kopírovat váš soukromý klíč.

Řešení 5:

Používám tento skript z ~/.local/bin adresář

#!/usr/bin/bash

ORIG_SSH=/usr/bin/ssh
HOST=$1

SSHPASS=$(grep -Pzo "Host $HOST"'\s*\n((?!Host).*\n)*#PS\s(\N+)\n' ~/.ssh/config|tail -n 2|head -n 1 | sed 's/#PS //')
if [ -n $SSHPASS ]; then
    export SSHPASS
    sshpass -e $ORIG_SSH [email protected]
else
    $ORIG_SSH [email protected]
fi

Což mi umožňuje zadat přístupovou frázi jako #PS <password> v .ssh/config soubor.

Ale jak všichni říkají, je lepší použít ssh-keys s ssh-agent když je to možné


Linux
  1. Automatizace hesel SSH v Linuxu pomocí sshpass

  2. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  3. Ssh – více podobných položek v konfiguraci Ssh?

  1. Jak zadat heslo pro více Windows?

  2. Jak zakázat přihlášení SSH pomocí hesla

  3. Rsync s výzvou SSH pro vzdálené heslo

  1. SSH přihlášení k serveru RHEL 7 bez hesla

  2. Provoz dvou SSH serverů

  3. SSH nepožaduje heslo, povolení okamžitě odepře