Det är nog bäst att byta från standardporten 22 för SSH, är aldrig rekommenderat att köra på standardportar när det handlar om fjärrsystem kopplade mot Internet. Det gäller även för 3389 (RDP).
Du kan göra den ändringen i routern många gånger. t.ex. incoming port 12345 i Router -> ip.address.på.server via port 22. -Om nätverket där servern står är klassat som "säkert".
Annars kan det vara bäst att även byta port direkt på servern via:
sudo nano /etc/ssh/sshd_config
Editera raden som säger:
Port 22
och ändra till t.ex.
Port 12345
Tryck Ctrl+x, följt av "y" för att bekräfta att spara filen och sedan Enter för confirm overwrite.
Sedan bör du starta om SSH tjänsten likt någon redan hade nämnt i tråden:
systemctl restart ssh
För att därefter ansluta till en server som ej använder standardporten för SSH via kommandorad får man nu istället köra kommandot med -p parametern:
ssh -p 12345 anvandarnamn@ip.address.på.server
Där -p 12345 specar vilken annan port som skall användas för SSH.
Kan även rekommendera att installera och använda UFW (Uncomplicated FireWall) på Ubuntu som lokal brandvägg:
sudo apt install ufw -y
Därefter lägger du till regler för varje tjänst t.ex:
sudo ufw allow 22/tcp - (För standard SSH-port)
alternativt:
sudo ufw allow 12345/tcp - (Om du ändrat standard porten på servern för SSH)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
etc...
Du kan även speca port-ranges enkelt via UFW:
sudo ufw allow 7100:7200/tcp -medför att port 7100 t.o.m. port 7200 tillåter anslutningar.
-Och därefter kör du:
sudo ufw enable
för att aktivera den lokala brandväggen. (du kan alltså confa regler osv. utan att att för den sakens skull behöva aktivera brandväggen, så se till att kolla så att allt annat fungerar fullt ut innan du aktiverar brandväggen, får du problem efter det så vet du att det var brandväggen som ställde till det och därmed bör du köra nedan kommando)
sudo ufw disable
för att stänga av den lokala brandväggen om det mot förmodan inte skulle fungera, kom ihåg att disable kommandot mest troligt måste utföras lokalt på servern, då brandväggen inte kommer att godkänna din fjärrsession om den är felkonfigurerad.
Är inte helsåld på settingen PermitRootLogin yes om jag skall vara ärlig.
Det låter väl mycket Windows-tänk där att man skall vara admin överallt och även logga in som det remote...
Normalt sett bör du logga in med non-standard user konto och sedan använda sudo eller sudo su kommando för att få root-rättigheter, tillfälligt.
Detta är ett bättre sätt då ett root konto alltid existerar på Linux-system, ungefär som ett Administratör-konto alltid finns på en Windows maskin som standard, det är således det första kontot som nät-bots försöker logga in via, därmed bättre om det inte tillåts alls, då måste bots även gissa rätt port+användarnamn(med sudo-rättigheter)+password.)
För att skapa en ny användare i Ubuntu kan du köra kommandot:
sudo useradd newuser
Fyll i uppgifterna som följer på skärmen.
Då skapas en ny användare: newuser
newuser har inga sudo-rättigheter som standard utan kan enbart logga in på systemet men har inte några administrativa inställningar eller häftigare rättigheter.
För att de ditt nyskapade newuser konto sudo-rättigheter kan du köra nedan kommando:
sudo usermod -a -G sudo newuser
Ovan kommando lägger till användaren newuser till -G (group) sudo.
Vill du se om det skett failade SSH-inloggningar mot ditt Linux-system kan du köra kommandot:
grep sshd.\*Failed /var/log/auth.log | less
Annars, det klart säkrare alternativet är givetvis att inte använda sig av några lösenord alls utan istället enbart köra med SSH-keys, dessa är makabert långa i jämförelse med traditionella lösenord och i.o.m. att SSH är krypterat end-to-end är det ingen större risk att nycklarna kommer på vift när man sätter upp lösningen:
https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/
En klar fördel att använda sig av SSH-keys är att du kan köra script och kommandon remote via SSH som om du satt uppkopplad direkt mot systemet (då inloggningen sker automatiskt baserat på din SSH-key) som då utförs direkt utan att du behöver sitta och fylla i lösenordsprompter eller inkludera lösenord i script-filer. Så det är rätt smutt, fast kanske överkurs i ditt fall.