Per Stenebo
2011-10-01 11:16:32
2022-05-31 14:59:17
SSH
SSH, akronym av Secure Shell, är ett protokoll för att ansluta sig säkert mot andra datorer över ett nätverk. Port 22 är standard.
Externa resurser
| Wikipedia om SSH | help.ubuntu.com | Cygwin + OpenSSH | .ssh/config | Using the SSH Config File | reverse-SSH | Ubuntu port forward | VPN over SSH | Top 20 OpenSSH Server Best Security Practices | How to Use Fail2ban to Secure Your Linux Server |
Manualsidor
ssh -OpenSSH SSH client (remote login program) | Ubuntu |
ssh_config -OpenSSH SSH client configuration files | Debian | Ubuntu |
ssh-keygen -authentication key generation, management and conversion | Ubuntu |
ssh-copy-id -use locally available keys to authorise logins on a remote | Ubuntu |
ssh-keyscan -gather ssh public keys | Ubuntu |
sshd -OpenSSH SSH daemon | Ubuntu |
sshd_config -OpenSSH SSH daemon configuration file | Ubuntu |
Installation av server
Installera: sudo apt install openssh-server
Konfigurera: sudo nano /etc/ssh/sshd_config
# Authentication: ... PermitEmptyPasswords no MaxAuthTries 3 # Hide OS version suffix during initial protocol handshake DebianBanner no
Kolla serverns svar på kontakt: telnet localhost 22
Avluta med quit
Alternativt nc localhost 22
Avsluta med ctrl+c
Svaret borde vara något i stil med: SSH-2.0-OpenSSH_7.6p1
utan tex Ubuntu-4ubuntu2.6
Kolla status: sudo systemctl status ssh
Ansluta med SSH
filhanterare, tex Nautilus
Syntax: ssh://användarnamn@I.P.n.r:port
Exempel: ssh://me@192.168.10.1:22
SSH via terminal, tex Bash
Syntax: ssh användarnamn@i.p.n.r
Exempel: ssh me@192.168.0.85
Man kan även använda det enklare ssh 192.168.0.85
, då används aktuellt användarnamn.
Ange port:
ssh -p 22 me@192.168.0.85
Kör kommando:
ssh me@192.168.0.85 'cd /home/me'
Kör flera kommandon:
ssh me@192.168.0.85 'cd /home/me ; ls -l ; df -h'
ECDSA key fingerprint
Kolla serverns nyckel:
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
256 SHA256:o+Gdx2xWfyL1Dwl9ZjWzE/KJP64EjxnCLzWdyNuEbQk root@myServer (ECDSA)
Automatisk login
Radera SSH-serverns publika och privata ssh-nycklar:
sudo rm /etc/ssh/ssh_host_*
Generera nya server-nycklar, endast dom nycklarna som fattas (raderade) kommer att nyskapas:
dpkg-reconfigure openssh-server
Generera nya SSH-klient-nycklar för att kunna logga in på fjärrdatorn utan lösenord:
ssh-keygen -t ed25519
Nyckelfilerna sparas normalt till hemkatalogen, tex ~/.ssh/id_ed25519 och id_ed25519.pub
Fråga om lösenord kan besvaras med enter (tomt lösen).
Överför nyckel till målservern:
ssh-copy-id -i ~/.ssh/id_ed25519.pub remoteHost
eller ssh-copy-id -p 22 -i ~/.ssh/id_ed25519.pub me@remoteHost
eller ssh-copy-id -i ~/.ssh/id_ed25519.pub "me@remoteHost -p22"
Alternativ metod för att ange anslutningsdetaljer för målservern. Lägg till värd i ~/.ssh/config:
Host remoteHost HostName remote.example.com Port 22 User me
Överför sedan din publika nyckel: ssh-copy-id remoteHost
Nyckel sparas i ~/.ssh/authorized_keys på målservern.
Testa anslutning mot målservern:
ssh remotehost
Inloggning med nyckelfil fungerar även om ssh-serverns hårdvara (MAC-adress) bytts ut.
Hantera klienternas nycklar på ssh servern
SSH-serverns betrodda klienter, finns i filen ~/.ssh/authorized_keys för aktuell användare.
Visa radnummer, kryptering och kommentar (användare och värd):
nl ~/.ssh/authorized_keys | tr -s ' ' '\t' | cut -f2,3,5
1 ssh-rsa me@ahost 2 ssh-rsa you@anotherhost
Radera rad 99: sed -i '99d' ~/.ssh/authorized_keys
Övrigt
Starta om SSH-server i Ubuntu:
sudo service ssh restart
sudo systemctl restart ssh
Problem
| wiki.archlinux |
Visa detaljer med växlen -v:
ssh -v me@myhost
Feltext vid anslutning efter att målmaskinen bytt IP:
Offending key for IP in /home/per/.ssh/known_hosts:99
Radera rad 99 i known_hosts:
sed -i '99d' ~/.ssh/known_hosts
Varning vid anslutning till host aServer:
ECDSA host key for IP address '192.168.0.126' not in list of known hosts.
Ta bort ip-adress associerad med värden aServer från den lokala värden:
ssh-keygen -R aServer
ssh-keygen -f "/home/doe/.ssh/known_hosts" -R "192.168.20.94"
Kolla om värden test2 finns i known_hosts:
ssh-keygen -F test2
# Host test2 found: line 19 |1|b7kOinuSZyTKwbPQ2dxTt6hyecc=|Y91Sbtn4aVefDULFw6Oz9Rt+zjY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGsIMm/M59me3GQUYwMuJrH2VbO2utETEc5+ZCN5x029ku37aFM2vw6Ypq8xqr/EmLiDZe8zHFMJjiaRdnWZL0Q=