Megjegyzések
- serverfault.com/ kérdések / 241588 / …
- A biztonságos módszer az SSH-kulcs előállítása az ssh-keygen -t rsa -b 2048 segítségével, és ezzel a kulccsal alternatívaként jelentkezzen be a távoli kiszolgálóra, telepítheti az " sshpash " alkalmazást, majd a következő sshpass -p ' jelszó ' ssh felhasználónév @ kiszolgálónév
- Az átirányított kérdés nem ugyanaz, mint ez. Ez egy interaktív munkamenet kezdeményezésének módját kéri.
Válasz
Ubuntuban telepítse a sshpass
csomag, majd használja így:
sshpass -p "YourPassword" ssh user@host
sshpass
támogatja a billentyűzet-interaktív jelszó átadását egy fájlból vagy egy környezeti változóból, ami megfelelőbb megoldás lehet minden olyan helyzetben, ahol a biztonság releváns. A részletekért lásd: man sshpass
.
Megjegyzések
- A gondolkodás nem ajánlott, és nem jó gyakorlat, ez pontosan a válasz a kérdésre. Fontolja meg a kulcsok használatát a fentiek szerint. De ha ' van egy fontos technológiai probléma, akkor ez a feltett megoldás
- csak a választ támogatom. Nem " racionális, miért ne ' t csináld így, ahelyett, hogy " válaszolna. Csak a válasz. ennélfogva kedveltem önt 🙂
- Nem utálom teljesen az sshpass-ot, valójában ideiglenesen. A ' -p ' használata azonban felesleges és nemkívánatos. Először állítsa be az SSHPASS változót, majd hajtsa végre az sshpass -e ssh < ssh-args > műveletet.
- @Brad Ha root van a dobozban, telepítheti az
sshpass
alkalmazást ayum --enablerepo=epel install sshpass
használatával. - Ez a válasz a Manjaro-n is működik ( Arch alapú).
Válasz
Ha alternatívájaként jelszót kell beírni egy szkriptbe vagy ssh
parancssori vagy egyszerű szöveges fájl, akkor “re SOK jobb, ha inkább egy ssh
kulcsot használsz. Akárhogy is, bárki, akinek hozzáférése van ahhoz a fiókhoz, ahol az ssh
ügyfélszkript tárolva van képes lenne ezt használni a kiszolgálóra való belépéshez, de legalább egy ssh
kulcs esetén az OpenSSH megfelelően támogatja, nem ad meg hozzáférést más módon, mint ssh
, szükség esetén könnyebben visszavonható, stb …
El kell magyaráznia, miért követeli meg az ssh kulcs használatát.
Fontolja meg egy kényszerített parancs használatát is (command="..."
a fájl), így az ügyfél csak a szükséges parancs futtatásához férhet hozzá a szerveren, nem pedig a teljes shell-hez.
Megjegyzések
- A távoli gazdagép valójában egy virtuális gép, amelyet más mérnökök használnak, és a teszt automatizálási kód másolatain kívül más erőforrás nem érdemes kockáztatni. A vita kedvéért tegyük fel, hogy az egyetlen hozzáférésem a szkriptfájl hozzáadása, nem pedig az ssh kulcsok hozzáadása a
~/.ssh/
fájlba. - Ez a ' s nagyon mesterkélt. Valamivel kevésbé kitalált forgatókönyv az lenne, hogy a kiszolgáló félrevezetett rendszergazdája letiltotta az ssh kulcs bejelentkezéseket (
PubkeyAuthentication no
a/etc/ssh/sshd_config
-ban). Mindkét esetben a jobb megoldás az alapul szolgáló probléma kijavítása, amely megakadályozza az ssh kulcs bejelentkezéseket. Ennek hiányában nézze meg a Gilles által feltett kérdést . - @MichaelM nem kell ssh kulcsokat hozzáadnia a
~/.ssh/
. Adja hozzá a kulcsot, ahol csak akarja, és használja assh -i /path/to/id_rsa
- A Stackexchanges válasznak arra a kérdésre kell válaszolnia, hogy ne állítsa, hogy a kérdés helyes. Erre van érvényes forgatókönyvem. Be kell állítanom a
~/.ssh/authorized_keys
fájlt 95 különböző mezőbe. Azért írtam egy szkriptet, hogy automatikusan leküldjem a autor_kulcs fájlomat, de továbbra is jelszót kér. Szebb lenne, ha a szkript az elején egyszer kéri a jelszót. - Egyetértek a flarn2006-mal.Nem mondhatod " ezt a kérdést néma szóval itt ' válaszolsz egy másik kérdésre, mert szerintem ' jobb kérdés, és tudom a választ ".
Válasz
Először is, a többi válaszadóhoz hasonlóan, csak az ssh kulcsok használatát javaslom. De feltételezem, hogy a kiszolgálót irányító személy egyszerűen nem engedélyezi az ssh kulcs hitelesítés használatát, és jelszó hitelesítést kell használnia.
Használhatja a ControlMastert és a ControlPatht.
Legyen A az a szerver, amelyhez nem fog hozzáférni (gondoljunk a folyamatos integrációs szerverekre, mint például a Bamboo), és C legyen az Ubuntu-t futtató távoli gazdagép.
Most legyen B egy olyan számítógép, amelyet Ön irányít. nem ad meg megfelelő B számítógépet, ez a válasz nem fog működni.
- Hozzon létre egy kulcspárt, és adja hozzá a nyilvános részt a Bs__autorized_key fájlhoz. Adj A-nak privát kulcsot. Most jelszó nélkül bejelentkezhet a B-be az A-ból.
- B-n manuálisan
ssh -M -S /tmp/controlpath C
, és írja be a jelszót a parancssorba. Ezt követően képesnek kell lennie az A-ból a jelszó nélküli bejelentkezésressh -S /tmp/controlpath C
.
Az A szkriptben írhat ssh B ssh C dostuff
.
A B újraindításakor újra létre kell hoznia a ssh -M -S /tmp/controlpath C
kapcsolatot.