SSH přihlášení jako heslo s textovým heslem? [duplicate]

Tato otázka již má odpovědi zde :

Komentáře

  • serverfault.com/ questions / 241588 / …
  • Bezpečným způsobem je vygenerovat klíč SSH pomocí ssh-keygen -t rsa -b 2048 a pomocí tohoto klíče alternativně se přihlaste ke vzdálenému serveru, můžete nainstalovat " sshpash " a poté můžete počítač ssh pomocí následujícího příkazu sshpass -p ' heslo ' ssh username @ servername
  • Otázka, na kterou je přesměrována, není stejná jako tato. Tento si žádá způsob, jak zahájit interaktivní relaci.

Odpovědět

Na Ubuntu nainstalujte sshpass balíček, pak jej použijte takto:

sshpass -p "YourPassword" ssh [email protected] 

sshpass také podporuje předávání hesla interaktivního s klávesnicí ze souboru nebo proměnné prostředí, což může být vhodnější volba v každé situaci, kde je relevantní zabezpečení. Podrobnosti viz man sshpass .

Komentáře

  • Ačkoli se to nedoporučuje a není to dobrý postup, toto je přesně odpověď na otázku. Zvažte použití kláves, jak je uvedeno výše. Pokud ale ' nastane zásadní technologický problém, toto je řešení, které bylo položeno
  • pouze hlasuji pro odpověď. Není " racionální důvod, proč to ' neděláte tímto způsobem, místo toho " odpovídá. Jen odpověď. proto jsem vás podpořil 🙂
  • Nenávidím ' úplně nenávidět sshpass, ve skutečnosti používám ' m dočasně. Používání ' -p ' je však zbytečné a nežádoucí. Nejprve nastavte proměnnou SSHPASS a poté proveďte sshpass -e ssh < ssh-args >.
  • @Brad If máte v krabici root, můžete nainstalovat sshpass pomocí yum --enablerepo=epel install sshpass.
  • Tato odpověď funguje i na Manjaro ( Arch-based).

Odpověď

Pokud je vaší alternativou vložení hesla do skriptu nebo ssh příkazový řádek nebo soubor ve formátu prostého textu, pak jste znovu MNOHO lepší použití klíče ssh. Ať tak či onak, kdokoli, kdo má přístup k účtu, kde je uložen klientský skript ssh by to mohl použít k tomu, aby se dostal na server, ale alespoň v případě klíče ssh to OpenSSH správně podporuje, neposkytujete přístup jinými prostředky než ssh, v případě potřeby je snadněji odvolán atd …

Budete muset vysvětlit, proč máte požadavek nepoužívat klíč ssh.

Zvažte také použití vynuceného příkazu (command="..." v .ssh/authorized_keys soubor), takže klient má přístup pouze ke spuštění příkazu, který potřebuje na serveru, nikoli k plnému shellu.

Komentáře

  • Vzdálený hostitel je ve skutečnosti virtuální počítač používaný jinými inženýry bez prostředků, které stojí za to riskovat, kromě kopií kódu automatizace testů. Kvůli diskusi řekněme, že jediným přístupem, který mám, je přidání souboru skriptu, ne přidání klíčů ssh do ~/.ssh/.
  • To ' je velmi vykonstruovaný. Poněkud méně vymyšleným scénářem by bylo, že zavádějící správce serveru zakázal přihlášení ssh klíčem (PubkeyAuthentication no v /etc/ssh/sshd_config). V obou případech je lepším řešením opravit základní problém, který vám brání v přihlášení ssh klíčem. Pokud tak neučiníte, prostudujte si otázku, na kterou upozornil Gilles .
  • @MichaelM nemusíte přidávat klíče ssh do ~/.ssh/. Přidejte klíč, kamkoli chcete, a použijte ssh -i /path/to/id_rsa
  • odpověď Stackexchanges by měla odpovědět na otázku, ne argumentovat, že otázka je správná. Mám pro to platný scénář. Musím nastavit své ~/.ssh/authorized_keys do 95 různých polí. Napsal jsem skript, který automaticky posune můj soubor authorized_keys, ale přesto vyzve k zadání hesla. Mít skript, který si na začátku vyžádá heslo, by bylo hezčí.
  • Souhlasím s flarn2006.Nemůžete říct " tato otázka je hloupá, takže zde ' je odpověď na jinou otázku, protože si myslím, že ' je lepší otázka a znám na ni odpověď ".

odpověď

Za prvé, stejně jako ostatní respondenti, doporučuji použít pouze klíče ssh. Budu ale předpokládat, že osoba ovládající server vám prostě neumožní použít ověřování pomocí klíče ssh a musíte použít ověřování pomocí hesla.

Můžete použít ControlMaster a ControlPath.

Nechť A je server, ke kterému nebudete mít přístup (myslíte si server pro nepřetržitou integraci jako Bamboo) a C je vzdálený hostitel se systémem Ubuntu.

Nyní nechte B být nějakým počítačem, který ovládáte. neposkytnete vhodný počítač typu B, tato odpověď nebude fungovat.

  1. Vytvořte pár klíčů a přidejte veřejnou část do souboru B_s authorized_keys. Dejte A soukromý klíč. Nyní se můžete přihlásit do B z A bez hesla.
  2. Na B ručně ssh -M -S /tmp/controlpath C a na výzvu zadejte své heslo. Poté byste měli být schopni se přihlásit do C z A bez hesla ssh -S /tmp/controlpath C.

Ve skriptu na A můžete napsat ssh B ssh C dostuff.

Pokaždé, když restartujete B, budete muset obnovit připojení ssh -M -S /tmp/controlpath C.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *