Hemsida » hur » Hur kan jag hålla lösenord osynliga när jag kör en kommando som ett SSH-argument?

    Hur kan jag hålla lösenord osynliga när jag kör en kommando som ett SSH-argument?

    Att hålla våra lösenord väl säkrade är något vi alla måste ta på allvar, men vad gör du om ett visst program eller en app visar ditt lösenord i vanlig syn när du skriver det? Dagens SuperUser Q & A-tjänst har lösningen på en frustrerad läsarens lösenordsproblem.

    Dagens Question & Answer-session kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

    Frågan

    SuperUser-läsaren user110971 vill veta hur man håller lösenord osynliga när man kör ett kommando som ett SSH-argument:

    Om jag kör det här kommandot och börjar skriva MySQL-lösenordet är lösenordet synligt på skärmen:

    • ssh user @ server 'mysql -u användare -p'

    Hur kan jag förhindra detta? Om jag loggar in via SSH och kör MySQL-kommandot, fungerar allt bra.

    Hur kan du hålla lösenord osynliga när du kör ett kommando som ett SSH-argument?

    Svaret

    SuperUser-bidragare Toby Speight har svaret för oss:

    Om du anger att ett fjärrkommando ska köras, tilldelar inte SSH a tty, så fjärrkommandot kan inte avaktivera eko. Du kan tvinga SSH att tillhandahålla en tty använda -t alternativ:

    • ssh -t användare @ server 'mysql -u användare -p'

    Det motsvarande alternativet (för -o eller för config-filen) är RequestTTY. Jag skulle vara försiktig mot att använda den i config-filen eftersom den kan ha oönskade effekter för icke-interaktiva kommandon.


    Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.

    Bildkrediter: Linux Skärmdumpar (Flickr)