Configurare program

Rezolvarea erorii:„Host key verification failed” în Linux

Sistemele de operare Linux sunt larg utilizate pentru administrarea serverelor și pentru conectarea securizată la alte sisteme prin intermediul protocolului SSH (Secure Shell). SSH permite accesul la distanță într-un mod criptat, asigurând confidențialitatea și integritatea datelor transmise.

Una dintre cele mai frecvente erori întâlnite la utilizarea SSH este:

Error: Host key verification failed

Această eroare apare atunci când mecanismul de securitate SSH detectează o problemă legată de cheia de identificare a serverului la care se încearcă conectarea. În acest referat vor fi explicate cauzele apariției erorii, modul de funcționare al verificării cheii gazdă (host key) și pașii necesari pentru rezolvarea problemei.

Ce este SSH și ce reprezintă „host key”

Protocolul SSH

SSH (Secure Shell) este un protocol de rețea care permite:

  • autentificarea securizată,

  • executarea comenzilor la distanță,

  • transferul de fișiere (prin SCP sau SFTP).

SSH folosește criptografia cu chei publice pentru a preveni atacurile de tip man-in-the-middle.

Ce este „host key”

Un host key este o cheie criptografică unică a serverului SSH. Aceasta este generată la instalarea serviciului SSH pe server și este utilizată pentru:

  • identificarea serverului,

  • verificarea autenticității acestuia la fiecare conexiune.

Pe calculatorul client, aceste chei sunt salvate într-un fișier special.

Fișierul known_hosts

În Linux, cheile serverelor cunoscute sunt stocate în fișierul:

~/.ssh/known_hosts

Acest fișier conține:

  • adrese IP sau nume de domenii,

  • tipul cheii (RSA, ECDSA, ED25519),

  • amprenta criptografică a cheii serverului.

La fiecare conexiune SSH:

  1. clientul verifică dacă serverul există în known_hosts;

  2. compară cheia primită cu cea salvată;

  3. dacă acestea diferă, conexiunea este blocată.

Cauzele apariției erorii „Host key verification failed”

Această eroare apare în principal din următoarele motive:

Schimbarea cheii serverului

  • serverul a fost reinstalat;

  • serviciul SSH a fost reconfigurat;

  • cheia host a fost regenerată.

Schimbarea adresei IP sau a serverului

  • un IP este reutilizat pentru un alt server;

  • domeniul indică acum spre o altă mașină.

Atac de tip „man-in-the-middle” (caz rar, dar critic)

SSH consideră diferența de chei ca un posibil atac, motiv pentru care refuză conexiunea.

  • Mesaj de eroare tipic

Un mesaj complet poate arăta astfel:

 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 
 Error: Host key verification failed.

Acest mesaj indică faptul că cheia serverului nu mai corespunde celei salvate anterior.

Metode de rezolvare a erorii

  1. Ștergerea manuală a cheii din known_hosts

Aceasta este metoda cea mai utilizată.

Pași:

  1. Deschide terminalul

  2. Editează fișierul:

    nano ~/.ssh/known_hosts
  3. Găsește linia care conține IP-ul sau domeniul problematic

  4. Șterge linia respectivă

  5. Salvează fișierul și reconectează-te

La următoarea conexiune, SSH va cere confirmarea noii chei.

Utilizarea comenzii ssh-keygen

Metodă rapidă și sigură:

ssh-keygen -R adresa_serverului

Exemplu:

ssh-keygen -R 192.168.1.10

Această comandă:

  • elimină automat cheia veche din known_hosts,

  • previne erori de editare manuală.

 Ștergerea completă a fișierului known_hosts (nerecomandat)

rm ~/.ssh/known_hosts

⚠️ Atenție:
Această metodă șterge toate cheile serverelor cunoscute și reduce nivelul de securitate.

Verificarea cheii serverului (măsură de securitate)

Pentru servere critice, este recomandată verificarea amprentei cheii:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

Amprenta obținută trebuie comparată cu cea afișată la conectare.

Prevenirea apariției erorii

Pentru a evita apariția frecventă a acestei erori:

  • nu regenera cheile SSH fără motiv;

  • documentează schimbările de server;

  • folosește DNS stabil și IP-uri fixe;

  • menține fișierul known_hosts actualizat.

[mai mult...]

Utilizare ridicată a procesorului în Dropbox: cum o repari definitiv

Problema de High CPU Usage la Dropbox apare de obicei din cauza sincronizării intense, fișierelor problematice sau unei versiuni vechi a aplicației.

 Rezolvare permanentă – pas cu pas

 Lasă sincronizarea să se termine

Dropbox poate consuma mult CPU cât timp:

  • scanează multe fișiere

  • sincronizează pentru prima dată

 Așteaptă până apare mesajul „Up to date”.

 Exclude folderele mari (Selectiv Sync)

  1. Click dreapta pe iconița Dropbox

  2. Settings → Sync → Selective Sync

  3. Debifează:

  • backup-uri

  • foldere cu mii de fișiere mici

  • arhive mari

 Reduce imediat consumul de CPU

 Dezactivează Backup-ul automat

  1. Settings → Backups

  2. Dezactivează:

  • Desktop

  • Documents

  • Pictures

 Folosește doar sincronizare manuală.

Șterge fișierele problematice

Anumite fișiere pot bloca procesarea:

  • nume foarte lungi

  • caractere speciale

  • fișiere temporare (.tmp, .log)

 Mută-le în afara folderului Dropbox.

 Actualizează Dropbox

Versiunile vechi pot consuma excesiv CPU:

  • Settings → About → Check for updates

 Repornește Dropbox

  • Exit Dropbox complet

  • Redeschide aplicația

 Reinstalare curată (soluție definitivă)

 Recomandat dacă problema persistă

 Dezinstalează Dropbox
 Repornește PC-ul
 Șterge manual:

C:\Users\NumeUser\AppData\Roaming\Dropbox
C:\Users\NumeUser\AppData\Local\Dropbox

 Instalează ultima versiune

 Limitează resursele folosite

  • Settings → Bandwidth

  • Setează limite pentru Upload / Download.

[mai mult...]

Eroare 500 pe Dropbox: cum rezolvi această problemă de conexiune

Eroarea Dropbox 500 (Internal Server Error) indică, de obicei, o problemă temporară pe serverele Dropbox sau o eroare de comunicare între dispozitivul tău și serviciu.

 Metode de rezolvare – pas cu pas

 Verifică statusul Dropbox

Uneori problema nu este la tine.

  • Accesează pagina de status Dropbox

  • Dacă apare o întrerupere, așteaptă remedierea

 Reîncarcă / reconectează

  • Refresh paginii (Ctrl + F5)

  • Deloghează-te și autentifică-te din nou în Dropbox

 Verifică conexiunea la internet

  • Testează o altă rețea (Wi-Fi diferit sau hotspot)

  • Dezactivează temporar VPN-ul / Proxy-ul

Șterge cache-ul browserului

Dacă eroarea apare în browser:

  • Clear Cache & Cookies

  • Încearcă un browser diferit (Edge, Chrome, Firefox) 

Dacă folosești aplicația desktop:

  • Ieși complet din Dropbox

  • Redeschide aplicația

  • Verifică dacă există update-uri

Firewall / Antivirus

Unele soluții de securitate pot bloca Dropbox:

  • Dezactivează temporar antivirusul

  • Permite Dropbox în firewall

Repornește sistemul

Simplu, dar eficient în multe cazuri.

[mai mult...]

Remediere: Dropbox error 413

Eroarea Dropbox 413 înseamnă „Payload Too Large” – fișierul (sau cererea) pe care încerci să-l încarci este prea mare pentru metoda folosită.

Cum remediezi Dropbox Error 413

Verifică metoda de încărcare

  • Browser (dropbox.com): limită ~50 GB

  • Aplicația Dropbox (desktop/mobile): până la 2 TB

Soluție: dacă apare eroarea în browser, instalează și folosește aplicația Dropbox desktop.

Împarte fișierul mare

Dacă fișierul depășește limita:

  • Folosește 7-Zip / WinRAR → „Split into volumes”

  • Sau exportă în mai multe fișiere mai mici

Verifică spațiul disponibil

Eroarea poate apărea și dacă:

  • Nu mai ai spațiu liber în contul Dropbox

Verifică:
Settings → Plan → Storage

Probleme cu proxy / firewall

Dacă ești într-o rețea de firmă:

  • Proxy-ul poate bloca fișiere mari

  • Firewall-ul poate limita uploadul

 Soluții:

  • Încearcă de pe altă rețea (ex: hotspot mobil)

  • Dezactivează temporar VPN-ul

Actualizează aplicația Dropbox

Versiunile vechi pot da erori la upload:

  • Deschide Dropbox → Settings → Check for updates

Upload prin sincronizare, nu drag & drop web

  • Copiază fișierul direct în folderul Dropbox de pe PC
  • Lasă aplicația să-l sincronizeze automat.
[mai mult...]

Arduino Soil Moisture Sensor

 How the Soil Moisture Sensor Works

Resistive Sensor

Uses two metal probes to measure electrical resistance. Wet soil has lower resistance, while dry soil has higher resistance.

Capacitive Sensor

Measures changes in soil capacitance and has no exposed metal parts. It provides more stable and long-lasting performance.

Both sensors provide an analog output that Arduino reads.

Wiring the Soil Moisture Sensor

Soil Sensor → Arduino
VCC         → 5V
GND         → GND
AO          → A0

The digital output (DO) pin is optional and can be used with a preset threshold.

Arduino Code (Basic Reading)


int soilPin = A0;
int soilValue = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  soilValue = analogRead(soilPin);

  Serial.print("Soil Moisture Value: ");
  Serial.println(soilValue);

  delay(1000);
}

Understanding Soil Moisture Values

Sensor Value Soil Condition
0 – 300 Very Wet
300 – 600 Moist
600 – 900 Dry
900 – 1023 Very Dry

Values may vary depending on soil type. Always calibrate with dry and wet soil.

Improved Code with Moisture Status


int soilPin = A0;
int soilValue = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  soilValue = analogRead(soilPin);

  Serial.print("Soil Moisture: ");
  Serial.print(soilValue);

  if (soilValue < 300) {
    Serial.println(" - WET");
  }
  else if (soilValue < 600) {
    Serial.println(" - MOIST");
  }
  else {
    Serial.println(" - DRY");
  }

  delay(1000);
}

Testing the Sensor

  1. Upload the code to Arduino
  2. Open the Serial Monitor
  3. Set baud rate to 9600
  4. Insert the sensor into soil
  5. Add water and observe changes

Wet soil produces lower values, while dry soil produces higher values.

Troubleshooting

  • Always reads 1023: Sensor not properly inserted
  • No value change: Loose wiring or faulty sensor
  • Unstable readings: Electrical noise or dry air
  • Corrosion: Use capacitive sensor instead of resistive

Optional Upgrades

  • Add relay and water pump for automatic irrigation
  • Add LCD or OLED display
  • Use ESP8266/ESP32 for IoT monitoring
  • Log data to SD card for analysis.
[mai mult...]

Tutorial pentru comanda chmod în Linux pentru începători

Comanda chmod din Linux este utilizată pentru a modifica permisiunile fișierelor și directoarelor într-un sistem de operare bazat pe Linux. Aceasta permite utilizatorilor să definească cine poate citi, scrie sau executa un fișier prin modificarea setărilor de permisiuni. Permisiunile sunt de obicei atribuite la trei categorii: proprietarul fișierului, grupul căruia îi aparține fișierul și alții (toți ceilalți).

Comanda chmod poate fi utilizată cu notație simbolică (de exemplu, chmod u+x nume_fișier pentru a adăuga permisiunea de execuție pentru utilizator) sau cu notație numerică (de exemplu, chmod 755 nume_fișier pentru a seta permisiuni specifice de citire, scriere și execuție pentru fiecare categorie). Această comandă este esențială pentru gestionarea controlului accesului pe un sistem, asigurându-se că fișierele și directoarele au setările de securitate corespunzătoare.

Vă rugăm să rețineți că toate exemplele și instrucțiunile menționate în acest tutorial au fost testate pe Ubuntu 24.04, iar versiunea chmod pe care am folosit-o este 8.25.

Noțiuni de bază despre Chmod

Luați în considerare următorul  exemplu de comandă ls :

Prima coloană din rezultat este de interes pentru noi. Lăsați deoparte semnul „-” inițial (care indică tipul de fișier). Câmpurile rămase din coloană pot fi defalcate în continuare astfel: rw- , rw- și r–. Acestea sunt permisiunile pe care le au proprietarul fișierului, grupul căruia îi aparține fișierul și alte persoane asupra acestui fișier.

Aceasta înseamnă că proprietarul are atât permisiuni de citire (r), cât și permisiuni de scriere (w), la fel ca și grupul. Alții, însă, au doar permisiuni de citire pentru fișier. Rețineți că presupunem că utilizatorul curent deține fișierul.

Acum, să presupunem că cerința este de a acorda tuturor dreptul de a executa acest fișier. Iată cum se poate face acest lucru:

chmod +x script.sh

Iată permisiunile acum:

„X”-ul suplimentar din permisiunile pentru proprietar, grup și alte persoane semnifică faptul că toată lumea are acum acces de execuție pentru acest fișier.

Totuși, cel mai probabil este să nu doriți ca toată lumea să aibă acces de execuție pentru un fișier. Ce se întâmplă dacă cerința este de a acorda acces de execuție la script.sh doar proprietarului/utilizatorului curent. Ei bine, pentru aceasta, primul pas acum ar fi să retrageți accesul de execuție de la toată lumea, lucru pe care îl puteți face folosind următoarea comandă:

chmod -x script.sh

Și apoi acordă-l explicit proprietarului:

chmod u+x script.sh

După cum ați fi ghicit, „u+x” spune să acorde (+) proprietarului/utilizatorului curent (u) acces de execuție (x) la fișier. În mod similar, pentru grup, puteți folosi „g”, iar pentru alții puteți folosi „o”.

Rețineți că ori de câte ori doriți să acordați/revocați un set comun de permisiuni către/de la toți, puteți folosi „a” în loc de „ugo”. Ceea ce vreau să spun este:

chmod ugo-x script.sh

poate fi înlocuit cu acesta:

chmod ax script.sh

De asemenea, rețineți că, dacă niciuna dintre acestea („u”, „g”, „o” și „a”) nu este specificată explicit, atunci se presupune că și valoarea implicită este „a”. Continuând, dacă doriți, puteți, de asemenea, să copiați pur și simplu permisiunile acordate, de exemplu, proprietarului/utilizatorului curent și să le păstrați pentru grup sau pentru alții. Pentru aceasta, utilizați semnul „=”.

De exemplu, pentru a copia permisiunile de proprietar/utilizator într-un grup, utilizați următoarea comandă:

chmod g=u script.sh

Un alt scenariu ar putea fi copierea permisiunilor pentru un anumit fișier și păstrarea acestora pentru fișierul dvs. Pentru aceasta, utilizați opțiunea de linie de comandă –reference . Iată șablonul general pentru utilizarea acestei opțiuni de linie de comandă:

chmod --reference=[fișier-sursă] [fișier destinație]

În comanda de mai sus, fișier-sursă este fișierul ai cărui biți de permisiune doriți să îi copiați, iar fișier-destinație este fișierul ai cărui biți de permisiune doriți să îi modificați.

Mergând mai departe, există și o notație numerică (cunoscută și sub numele de reprezentare octală) folosind care poți spune lui chmod să modifice permisiunile. Există trei numere cu care te joci în acest mod: 4, 2 și 1. În timp ce 4 este pentru citire, celelalte două sunt pentru scriere și respectiv executare.

De exemplu, luați în considerare următorul exemplu:

Acum, să presupunem că sarcina este de a adăuga permisiunea de execuție pentru proprietar/utilizator, de a elimina permisiunea de scriere, dar de a adăuga permisiunea de execuție grupului și de a elimina toate permisiunile de la ceilalți. Acest lucru se poate face după cum urmează:

chmod 750 script.sh

În comanda de mai sus, „7” este pentru utilizator, rezultatul a 4+2+1, deoarece cerința pentru utilizator este să dețină toate permisiunile. În mod similar, „5” este pentru grup, rezultatul a 4+0+1, deoarece cerința este de a acorda grupului doar permisiuni de citire și execuție. În cele din urmă, „0” este pentru ceilalți, rezultatul a 0+0+0, deoarece cerința este de a revoca toate permisiunile celorlalți.

Pentru cei care lucrează cu linkuri simbolice, iată câteva lucruri de știut:

chmod nu modifică niciodată permisiunile legăturilor simbolice; apelul de sistem chmod nu poate modifica permisiunile acestora. Aceasta nu este o problemă, deoarece 
permisiunile legăturilor simbolice nu sunt niciodată utilizate. Cu toate acestea, pentru fiecare legătură simbolică listată în linia de comandă, chmod modifică permisiunile 
fișierului indicat. În schimb, chmod ignoră legăturile simbolice întâlnite în timpul traversărilor recursive de directoare.

Referință linie de comandă

Comanda chmod din Linux are mai multe opțiuni în linia de comandă care îi modifică comportamentul. Iată o listă cu cele mai frecvent utilizate opțiuni:

  • -R, –recursive: Această opțiune aplică recursiv modificările permisiunilor tuturor fișierelor și directoarelor din directorul specificat. Este utilă atunci când doriți să modificați permisiunile unui director și ale întregului său conținut dintr-o dată.Exemplu: chmod -R 755 /calea/către/director
  • -c, –changes: Această opțiune raportează doar când se face o modificare. Dacă permisiunile sunt modificate cu succes, afișează un mesaj care indică modificarea.Exemplu: chmod -c 644 numefișier
  • -v, –verbose: Această opțiune oferă informații detaliate despre fiecare fișier procesat, indiferent dacă permisiunile au fost modificate sau nu.Exemplu: chmod -v 755 numefișier
  • -reference=RFILE: În loc să specificați direct permisiunile, această opțiune vă permite să setați permisiunile unui fișier sau director pentru a se potrivi cu un alt fișier sau director (RFILE).Exemplu: chmod –reference=file1 file2
  • -f, –silent, –quiet: Această opțiune suprimă majoritatea mesajelor de eroare, făcând comanda să se execute fără a afișa rezultatul pentru erori.Exemplu: chmod -f 755 numefișier

Aceste opțiuni permit utilizarea flexibilă a chmod în diverse scenarii, de la ajustări ale unui singur fișier până la modificări ale permisiunilor directorului la scară largă.

[mai mult...]