GNU/Linux >> Znalost Linux >  >> Linux

Jak předat heslo do su/sudo/ssh bez přepsání TTY?

Pro sudo existuje volba -S pro přijetí hesla ze standardního vstupu. Zde je mužský záznam:

    -S          The -S (stdin) option causes sudo to read the password from
                the standard input instead of the terminal device.

To vám umožní spustit příkaz jako:

echo myPassword | sudo -S ls /tmp

Pokud jde o ssh, udělal jsem mnoho pokusů o automatizaci/skriptování jeho použití bez úspěchu. Zdá se, že neexistuje žádný vestavěný způsob, jak předat heslo do příkazu bez vyzvání. Jak již uvedli jiní, nástroj "očekávat" se zdá, jako by byl zaměřen na řešení tohoto dilematu, ale v konečném důsledku je nastavení správné autorizace soukromým klíčem správným způsobem, když se to pokoušíte automatizovat.


Napsal jsem nějaký Applescript, který prostřednictvím dialogového okna vyzve k zadání hesla a poté vytvoří vlastní příkaz bash, jako je tento:

echo <password> | sudo -S <command>

Nejsem si jistý, jestli to pomůže.

Bylo by hezké, kdyby sudo akceptovalo předem zašifrované heslo, abych ho mohl zašifrovat ve svém skriptu a nemusel se starat o opakování hesel s čistým textem. Nicméně to funguje pro mě a mou situaci.


Pro sudo můžete také udělat toto:

sudo -S <<< "password" command

Pro ssh můžete použít sshpass :sshpass -p yourpassphrase ssh [email protected] .

Stačí si nejprve stáhnout sshpass :)

$ apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]

Linux
  1. Jak udělat sudo zapamatovat si heslo déle

  2. Jak přinutím sudo, aby požádal o heslo uživatele root?

  3. Jak nastavit Rsync bez hesla s SSH na UNIX / Linux?

  1. Jak vyřešit chybu sudoers – „promiňte, ke spuštění sudo musíte mít tty“

  2. Jak vzdáleně spustit příkaz ssh a příkaz sudo bez hesla

  3. SSH - Jak zahrnout příkaz -t do souboru ~/.ssh/config

  1. Jak nastavit SSH přihlášení bez hesla

  2. Jak spustit konkrétní program jako root bez výzvy k zadání hesla?

  3. Ssh – Potřebujete Tty ke spuštění sudo, pokud mohu sudo bez hesla?