Secure shell (SSH) er både et dataprogram og en nettverksprotokoll som befinner seg på applikasjonslaget og brukes normalt å få tilgang til en kommandolinje (shell) på en annen maskin. SSH ble designet for å ta over for telnet-, rlogin- og rsh-protokollene. Bruksområdet er stort sett det samme som for telnet, men i motsetning til telnet, som sender alt (inkludert passord) i klartekst, blir all trafikken mellom en SSH-klient og –server kryptert.
SSH er i utgangspunktet en kryptert tunnel for datatrafikk, som i motsetning til VPN fungerer på applikasjonslaget. I stedet for å påvirke rutingen av nettverket kan man logge inn på en konto på en annen maskin og kjøre programmer. SSH-tjeneren oppfører seg som et hvilket som helst annet program og er bundet av rettighetene til den brukeren man logger inn som. Standard er å koble til kommandoskallet for brukeren en logger inn som, men en kan også overføre filer, opprette nettverksforbindelser (over TCP-porter) mellom klienten og tjeneren, og ellers gjøre det en vil innenfor brukerens rettigheter.
SSH er derfor mer enn bare SSH-programmet, men også et rammeverk for midlertidig tilkobling til andre maskiner. En kan overføre filer med scp, sftp, rsync osv., SSH kan enkelt settes til å overføre X11-trafikk i tillegg til bare terminaldata, og det er etter hvert blitt mange programmer som bruker SSH til å overføre data. Enten det er revisjonskontroll-systemer (CVS, Subversion osv.), systemadministrasjonsverktøy (dsh, dcmd osv.) eller backup-systemer.
SSH er godt egnet til systemadministrasjon og annet periodisk arbeid der faste forbindelser er unødvendige eller kanskje til og med uønsket. Å ha en ssh-port tilgjengelig for folk som vil jobbe utenfra er ikke regnet som noen stor sikkerhetsrisiko. Systemet er godt passet på, består av forskjellige moduler som ikke stoler på hverandres evne til å ivareta mer enn et minimum av sikkerhet, og selv teoretisk mulige risikoer blir slått opp i pressen. SSH er derfor blitt en av bærebjelkene for samarbeid over internett, spesielt innen fri programvare.
Folk i OpenBSD-miljøet fant imidlertid ut at dette var et viktig program, og videreutviklet den første versjonen under navnet OpenSSH. Dette tiltaket er spredd til de aller fleste plattformer, og det finnes derfor to parallelle utgaver av SSH, tilhørende hvert sitt paradigme.
En senere versjon av protokollen ble utgitt under navnet SSH-2. Denne har blitt standardisert av IETF og brukes i begge miljøene.
Utvalget av krypteringsprotokoller er litt forskjellig i de to SSH-variantene. OpenSSH bruker SSL til kryptering av data. Dette kan bety at de to variantene forhandler fram en krypteringsprotokoll som ikke er optimal for noen av dem, men en alminnelig bruker vil ikke oppdage noen samarbeidsproblemer.