Author:
Per Stenebo
Created:
2011-10-01 11:16:32
Modified:
2022-05-31 14:59:17
sv

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=

 

Comments to page SSH