Upload files to "/"

ssh connection test
This commit is contained in:
2026-02-02 16:55:49 +00:00
parent 100fd723fa
commit 8cffe3b1bc

166
login.sh Normal file
View File

@@ -0,0 +1,166 @@
#!/bin/bash
# Skrypt do logowania na 3 serwery SSH z hasłem "changeme"
# Kolorowe komunikaty
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${YELLOW}=== Skrypt logowania SSH z diagnostyką ===${NC}"
# Sprawdź, czy sshpass jest zainstalowany
if ! command -v sshpass &> /dev/null; then
echo -e "${RED}sshpass nie jest zainstalowany. Instaluję...${NC}"
# Sprawdź system i zainstaluj sshpass
if [[ -f /etc/debian_version ]]; then
sudo apt-get update && sudo apt-get install -y sshpass
elif [[ -f /etc/redhat-release ]]; then
sudo yum install -y sshpass
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
else
echo -e "${RED}Nie można automatycznie zainstalować sshpass. Zainstaluj ręcznie.${NC}"
echo "Ubuntu/Debian: sudo apt-get install sshpass"
echo "RHEL/CentOS: sudo yum install sshpass"
exit 1
fi
fi
# Tablica z adresami IP (zmień na swoje)
IP_ADDRESSES=("172.23.72.109" "172.23.75.40" "172.23.72.10")
HASLO="changeme"
UZYTKOWNIK="debian" # Ustawiony na debian zgodnie z Twoim testem
PORT=22
echo "Używane parametry:"
echo "Hasło: $HASLO"
echo "Użytkownik: $UZYTKOWNIK"
echo "Port: $PORT"
echo ""
# Testuj najpierw ping
echo -e "${BLUE}=== Test dostępności (ping) ===${NC}"
for ip in "${IP_ADDRESSES[@]}"; do
echo -n "Ping $ip: "
if ping -c 1 -W 2 "$ip" &> /dev/null; then
echo -e "${GREEN}OK${NC}"
else
echo -e "${RED}FAILED${NC}"
fi
done
echo ""
# Testuj port SSH
echo -e "${BLUE}=== Test portu SSH ===${NC}"
for ip in "${IP_ADDRESSES[@]}"; do
echo -n "Port $PORT na $ip: "
if timeout 2 nc -z "$ip" "$PORT" &> /dev/null; then
echo -e "${GREEN}OTWARTY${NC}"
else
echo -e "${RED}ZAMKNIĘTY${NC}"
fi
done
echo ""
# Funkcja do testowania połączenia SSH z różnymi metodami
testuj_polaczenie() {
local ip=$1
echo -e "${YELLOW}Próba połączenia SSH z $ip...${NC}"
# METODA 1: sshpass z wyświetlaniem błędów
echo -n "Metoda 1 (sshpass): "
sshpass -p "$HASLO" ssh -o StrictHostKeyChecking=no \
-o ConnectTimeout=5 \
-o PasswordAuthentication=yes \
-o PubkeyAuthentication=no \
-p $PORT \
$UZYTKOWNIK@$ip "echo 'SSH OK'" 2>&1
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ SUCCESS${NC}"
return 0
else
echo -e "${RED}✗ FAILED${NC}"
fi
# METODA 2: sshpass z krótkim poleceniem
echo -n "Metoda 2 (krótkie polecenie): "
if echo "exit" | sshpass -p "$HASLO" ssh -o ConnectTimeout=3 "$UZYTKOWNIK@$ip" &> /dev/null; then
echo -e "${GREEN}✓ SUCCESS${NC}"
return 0
else
echo -e "${RED}✗ FAILED${NC}"
fi
# METODA 3: Manualna symulacja (do debugowania)
echo -e "${BLUE}Manualna próba (skopiuj i wklej):${NC}"
echo " sshpass -p '$HASLO' ssh $UZYTKOWNIK@$ip"
echo ""
return 1
}
# Główna pętla dla wszystkich adresów IP
echo -e "${YELLOW}=== Szczegółowe testy SSH ===${NC}"
echo "=========================================="
udane=0
nieudane=0
wyniki=()
for ip in "${IP_ADDRESSES[@]}"; do
echo ""
echo -e "${BLUE}>>> Test dla: $ip <<<${NC}"
testuj_polaczenie "$ip"
wynik=$?
if [ $wynik -eq 0 ]; then
((udane++))
wyniki+=("$ip: SUCCESS")
else
((nieudane++))
wyniki+=("$ip: FAILED")
fi
echo "------------------------------------------"
done
# Podsumowanie
echo ""
echo "========================================"
echo -e "${YELLOW}PODSUMOWANIE:${NC}"
echo ""
for wynik in "${wyniki[@]}"; do
if [[ $wynik == *"SUCCESS"* ]]; then
echo -e "${GREEN}$wynik${NC}"
else
echo -e "${RED}$wynik${NC}"
fi
done
echo ""
echo -e "${GREEN}Udane połączenia: $udane${NC}"
echo -e "${RED}Nieudane połączenia: $nieudane${NC}"
# Zapisz wynik do pliku logu
DATA=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$DATA] Udane: $udane, Nieudane: $nieudane" >> ssh_connection_log.txt
echo -e "${BLUE}Wynik zapisano do: ssh_connection_log.txt${NC}"
# Dodatkowe sugestie
echo ""
echo -e "${YELLOW}=== SUgestie rozwiązywania problemów ===${NC}"
echo "1. Sprawdź czy serwery są włączone"
echo "2. Sprawdź czy użytkownik '$UZYTKOWNIK' istnieje na serwerach"
echo "3. Sprawdź czy hasło jest poprawne"
echo "4. Sprawdź czy SSH jest skonfigurowany do akceptowania logowania hasłem"
echo "5. Sprawdź firewalle i reguły sieciowe"
echo "6. Spróbuj ręcznie: ssh $UZYTKOWNIK@172.23.72.109"
echo ""
exit 0