ssh(1): Skillnad mellan sidversioner

Från Wiki.linux.se - Svensk Linux Wiki
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
Rad 1: Rad 1:
= ssh(1) =
== SSH(1) — Linux manualsida ==


== NAMN ==
== NAMN ==
ssh – OpenSSH SSH-klient (fjärrinloggningsprogram)
'''ssh''' – OpenSSH SSH-klient (program för fjärrinloggning)


== SYNOPSIS ==
== SYNOPSIS ==
<pre>
<pre>
ssh [-1246AaCfgKkMNnqsTtVvXxYy]
ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
    [-b bind_adress] [-c chiffer_spec]
     [-D [bind_address:]port] [-e escape_char] [-F configfile]
     [-D [bind_adress:]port]
    [-i identity_file] [-L [bind_address:]port:host:hostport]
    [-e escape_tecken] [-F konfigfil] [-i nyckelfil]
     [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option]
    [-L [bind_adress:]port:värd:värdport]
    [-p port] [-R [bind_address:]port:host:hostport] [-S ctl_path]
     [-l inloggningsnamn] [-m mac_spec]
    [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
    [-O ctl_kommando] [-o option] [-p port]
    [-R [bind_adress:]port:värd:värdport]
    [-S ctl_sökväg] [-W värd:port]
    [-w lokal_tun[:remote_tun]]
    [användare@]värdnamn [kommando]
</pre>
</pre>


== BESKRIVNING ==
== BESKRIVNING ==
'''ssh''' (SSH-klient) används för fjärrinloggning och för att köra kommandon på en fjärrmaskin. Den ersätter ''rlogin'' och ''rsh'' och tillhandahåller krypterad kommunikation över osäkra nät. Förutom interaktiva skal kan '''ssh''' vidarebefordra X11 och godtyckliga TCP-portar genom den krypterade kanalen
'''ssh''' (SSH-klient) är ett program för att logga in på en fjärrmaskin och för att köra kommandon på en fjärrmaskin. Det är avsett att ersätta rlogin och rsh, och ge säker, krypterad kommunikation mellan två opålitliga värdar över ett osäkert nätverk. X11-anslutningar och godtyckliga TCP-portar kan också vidarebefordras över den säkra kanalen.
Om ''kommando'' anges körs det på fjärrsidan istället för ett inloggningsskal.


== FLAGGOR ==
'''ssh''' ansluter och loggar in på den angivna ''hostname'' (med valfritt användarnamn ''user''). Användaren måste bevisa sin identitet för fjärrmaskinen med någon av flera metoder beroende vilken protokollversion som används (se nedan).
{| class="wikitable"
! Flagga !! Beskrivning
|-
| '''-1''' || Tvinga användning av protokollversion 1 enbart.
|-
| '''-2''' || Tvinga användning av protokollversion 2 enbart (standard).
|-
| '''-4''' || Använd endast IPv4.
|-
| '''-6''' || Använd endast IPv6.
|-
| '''-A''' || Aktivera vidarebefordran av autentiseringsagenten (ssh-agent).
|-
| '''-a''' || Inaktivera vidarebefordran av autentiseringsagenten.
|-
| '''-b''' ''bind_adress'' || Använd angiven lokal källadress.
|-
| '''-C''' || Komprimera all data.
|-
| '''-c''' ''chiffer_spec'' || Välj chiffer (v2: kommaseparerad lista; se ''Ciphers'' i [[ssh_config(5)]]).
|-
| '''-D''' ''[bind_adress:]port'' || Lokal ''dynamisk'' portvidarebefordran (SOCKS4/5). Kan också sättas i konfigfil.
|-
| '''-e''' ''escape_tecken'' || Escape-tecken för pty-sessioner (standard '''~'''; ''none'' stänger av).
|-
| '''-F''' ''konfigfil'' || Alternativ användarkonfiguration; ignorerar systemets ''/etc/ssh/ssh_config''.
|-
| '''-f''' || Gå till bakgrunden före kommandokörning (implicerar '''-n'''); väntar på forwards om ''ExitOnForwardFailure yes''.
|-
| '''-g''' || Tillåt fjärrvärdar att ansluta till lokala vidarebefordrade portar.
|-
| '''-I''' ''smartcard_enhet'' || Smartkortenhet för privat RSA-nyckel (om kompilerat med stöd).
|-
| '''-i''' ''nyckelfil'' || Privat nyckel (kan anges flera gånger).
|-
| '''-K''' || Aktivera GSSAPI-autentisering samt vidarebefordran av GSSAPI-uppgifter.
|-
| '''-k''' || Inaktivera vidarebefordran av GSSAPI-uppgifter.
|-
| '''-L''' ''[bind_adress:]port:värd:värdport'' || Lokal portvidarebefordran till värd:värdport fjärrsidan (IPv6 stöds; ''localhost'' binder lokalt).
|-
| '''-l''' ''inloggningsnamn'' || Användarnamn på fjärrmaskinen.
|-
| '''-M''' || Sätt klienten i ''master''-läge för anslutningsdelning (''ControlMaster'').
|-
| '''-m''' ''mac_spec'' || (v2) Kommaseparerad lista över MAC-algoritmer (se ''MACs'').
|-
| '''-N''' || Kör inget fjärrkommando (endast portvidarebefordran).
|-
| '''-n''' || Läs inte från stdin (redirigerar från ''/dev/null''); krävs i bakgrunden.
|-
| '''-O''' ''ctl_kommando'' || Styr aktiv multiplex-master: ''check'' (körs?) eller ''exit'' (avsluta).
|-
| '''-o''' ''option'' || Ange alternativ som i konfigfil (t.ex. '''-o StrictHostKeyChecking=yes''').
|-
| '''-p''' ''port'' || Fjärrport att ansluta till (kan sättas per värd i konfigfil).
|-
| '''-q''' || Tyst läge – undertryck varningar/diagnostik.
|-
| '''-R''' ''[bind_adress:]port:värd:värdport'' || Fjärr portvidarebefordran till lokal sida; ''GatewayPorts'' kan krävas på servern.
|-
| '''-S''' ''ctl_sökväg'' || Sökväg till kontrollsocket (anslutningsdelning).
|-
| '''-s''' || Begär körning av ett subsystem (SSH2), t.ex. '''sftp'''.
|-
| '''-T''' || Inaktivera tilldelning av pseudo-tty.
|-
| '''-t''' || Tvinga tilldelning av pseudo-tty (kan upprepas).
|-
| '''-V''' || Visa versionsnummer och avsluta.
|-
| '''-v''' || Pratsamt (verbose) läge. Flera '''-v''' ökar nivån (max 3).
|-
| '''-W''' ''värd:port'' || Vidarebefordra klientens stdin/stdout till värd:port över kanalen (implicerar bl.a. '''-N -T'''; endast v2).
|-
| '''-w''' ''lokal_tun[:remote_tun]'' || Vidarebefordra '''tun(4)'''-enheter (VPN). Se ''Tunnel''/''TunnelDevice''.
|-
| '''-X''' || Aktivera X11-vidarebefordran.
|-
| '''-x''' || Inaktivera X11-vidarebefordran.
|-
| '''-Y''' || Aktivera ''betrodd'' X11-vidarebefordran (mindre restriktioner).
|-
| '''-y''' || Skicka loggar via '''syslog(3)''' istället för stderr.
|}


== DETALJERAD ANVÄNDNING ==
Om ''command'' anges körs det på fjärrvärden i stället för ett inloggningsskal.
=== Ciphers och MACs ===
För protokoll 2 är '''-c''' (chiffer) och '''-m''' (MAC) kommaseparerade listor i preferensordning; styrs också i [[ssh_config(5)]] via ''Ciphers'' och ''MACs''.


=== Dynamisk portvidarebefordran ('''-D''') ===
== ALTERNATIV ==
Skapar en lokal SOCKS-proxy på angiven port. IPv6-adresser kan skrivas som ''[addr]:port'' eller ''addr/port''. Bindningspolicy påverkas av ''GatewayPorts''; ''localhost'' binder endast lokalt, ''*'' alla gränssnitt.
'''''-1'''''
      Tvingar '''ssh''' att försöka använda endast protokoll version 1.


=== Lokal ('''-L''') och fjärr ('''-R''') vidarebefordran ===
'''''-2'''''
Allokerar lyssningssocket och vidarebefordrar över SSH-kanalen. Privilegierade portar kräver root. För '''-R''' binds serverns socket normalt till loopback om inte annat anges; ''GatewayPorts'' på servern kan krävas för icke-lokala bindningar. Port ''0'' kan begäras för dynamisk allokering på servern.
      Tvingar '''ssh''' att försöka använda endast protokoll version 2.


=== Multiplexning och delning ===
'''''-4'''''
''-M'' startar master; ''-S'' anger control-socket; ''-O check|exit'' styr master. Se ''ControlMaster'' och ''ControlPath'' i [[ssh_config(5)]].
      Tvingar '''ssh''' att endast använda IPv4-adresser.


=== Bakgrundskörning ===
'''''-6'''''
''-f'' skickar klienten till bakgrunden (implicerar ''-n''). Med ''ExitOnForwardFailure yes'' väntar klienten tills alla portforwards är uppe.
      Tvingar '''ssh''' att endast använda IPv6-adresser.
 
'''''-A'''''
      Aktiverar vidarebefordran av autentiseringsagentens anslutning. Detta kan också anges per värd i en konfigurationsfil.
 
      Agentvidarebefordran bör användas med försiktighet. Användare som kan kringgå filrättigheter på fjärrvärden (för agentens Unix-domänsocket) kan nå den lokala agenten via den vidarebefordrade anslutningen. En angripare kan inte hämta nyckelmaterial från agenten, men kan utföra operationer med nycklarna som gör det möjligt att autentisera sig med identiteter som är inlästa i agenten.
 
'''''-a'''''
      Inaktiverar vidarebefordran av autentiseringsagentens anslutning.
 
'''''-b''''' ''bind_address''
      Använd ''bind_address'' på den lokala maskinen som källadress för anslutningen. Endast användbart på system med fler än en adress.
 
'''''-C'''''
      Begär komprimering av all data (inklusive stdin, stdout, stderr samt data för vidarebefordrade X11- och TCP-anslutningar). Komprimeringsalgoritmen är densamma som används av [[gzip(1)]], och ”nivån” kan styras av alternativet ''CompressionLevel'' för protokoll version 1. Komprimering är önskvärd på modemlinjer och andra långsamma anslutningar, men kan bara göra saker långsammare på snabba nät. Standardvärdet kan sättas per värd i konfigurationsfilerna; se ''Compression''.
 
'''''-c''''' ''cipher_spec''
      Väljer chifferspecifikation för att kryptera sessionen.
 
      Protokoll version 1 tillåter specifikation av ett enda chiffer. Stödda värden: ''3des'', ''blowfish'' och ''des''. ''3des'' (triple-des) är en encrypt-decrypt-encrypt-trippel med tre olika nycklar och anses säker. ''blowfish'' är ett snabbt blockchiffer; det verkar mycket säkert och är mycket snabbare än ''3des''. ''des'' stöds endast för interoperabilitet med äldre implementationer av protokoll 1 som inte stöder ''3des''; användning avråds starkt p.g.a. kryptografiska svagheter. Standard är ''3des''.
 
      För protokoll version 2 är ''cipher_spec'' en kommaseparerad lista av chiffer i prioriteringsordning. Se nyckelordet ''Ciphers'' i [[ssh_config(5)]] för mer information.
 
'''''-D''''' [ ''bind_address'' : ] ''port''
      Anger lokal ”dynamisk” portvidarebefordran på applikationsnivå. Detta fungerar genom att allokera en socket som lyssnar på ''port'' på den lokala sidan, valfritt bunden till ''bind_address''. När en anslutning görs till denna port vidarebefordras den över den säkra kanalen och applikationsprotokollet används för att avgöra vart man ska ansluta från fjärrmaskinen. För närvarande stöds SOCKS4 och SOCKS5 och '''ssh''' fungerar som en SOCKS-server. Endast root kan vidarebefordra privilegierade portar. Dynamisk vidarebefordran kan också anges i konfigurationsfilen.
 
      IPv6-adresser kan anges med alternativ syntax: [bind_address/ ]port eller genom att omge adressen med hakparenteser. Endast superuser kan vidarebefordra privilegierade portar. Som standard binds den lokala porten enligt ''GatewayPorts''. En explicit ''bind_address'' kan dock användas för att binda till en specifik adress. ''bind_address'' ''localhost'' betyder att lyssningsporten bara binds lokalt; tom adress eller ”*” betyder att porten ska vara tillgänglig från alla gränssnitt.
 
'''''-e''''' ''escape_char''
      Sätter escape-tecknet för sessioner med pty (standard: ”~”). Escape-tecknet känns bara igen i början av en rad. Escape följt av punkt ”.” stänger anslutningen; följt av control-Z suspenderar; följt av sig självt skickar escape-tecknet en gång. Tecknet ''none'' inaktiverar alla escapes och gör sessionen helt transparent.
 
'''''-F''''' ''configfile''
      Anger alternativ per-användare-konfigurationsfil. Om en konfigurationsfil anges på kommandoraden ignoreras den systemomfattande konfigurationsfilen (''/etc/ssh/ssh_config''). Standard per-användare-fil är ''~/.ssh/config''.
 
'''''-f'''''
      Begär att '''ssh''' går till bakgrunden strax före kommandoexekvering. Detta är användbart om '''ssh''' kommer att fråga efter lösenord/lösenfraser men användaren vill ha processen i bakgrunden. Detta implicerar '''-n'''. Rekommenderat sätt att starta X11-program på fjärrsidan: <pre>ssh -f host xterm</pre>
 
      Om konfigurationsalternativet ''ExitOnForwardFailure'' är ''yes'' kommer en klient startad med '''-f''' att vänta på att alla fjärrvidarebefordringar har etablerats innan den lägger sig i bakgrunden.
 
'''''-g'''''
      Tillåter fjärrvärdar att ansluta till lokalt vidarebefordrade portar.
 
'''''-I''''' ''smartcard_device''
      Anger enhet som '''ssh''' ska använda för att kommunicera med ett smartkort som lagrar användarens privata RSA-nyckel. Endast tillgängligt om smartkortsstöd kompilerats in.
 
'''''-i''''' ''identity_file''
      Väljer fil från vilken identiteten (privat nyckel) för RSA- eller DSA-autentisering läses. Standard: ''~/.ssh/identity'' (protokoll 1) och ''~/.ssh/id_rsa'' samt ''~/.ssh/id_dsa'' (protokoll 2). Identitetsfiler kan också anges per värd. Flera '''-i''' kan användas.
 
'''''-K'''''
      Aktiverar GSSAPI-baserad autentisering och vidarebefordran (delegering) av GSSAPI-referenser till servern.
 
'''''-k'''''
      Inaktiverar vidarebefordran (delegering) av GSSAPI-referenser till servern.
 
'''''-L''''' [ ''bind_address'' : ] ''port'' : ''host'' : ''hostport''
      Anger att den givna porten på den lokala (klient)värden ska vidarebefordras till angiven värd och port på fjärrsidan. Detta fungerar genom att lyssna på ''port'' lokalt (valfritt bunden till ''bind_address''). När en anslutning görs vidarebefordras den över den säkra kanalen och en anslutning görs från fjärrmaskinen till ''host:hostport''. Portvidarebefordran kan också anges i konfigurationsfilen.
 
      IPv6-adresser kan anges med alternativ syntax: [bind_address/ ]port/host/hostport eller genom att omge adressen med hakparenteser. Endast superuser kan vidarebefordra privilegierade portar. Standardbindning följer ''GatewayPorts''; explicit ''bind_address'' kan binda till specifik adress. ''localhost'' betyder endast lokalt; tom adress eller ”*” betyder alla gränssnitt.
 
'''''-l''''' ''login_name''
      Anger användare att logga in som på fjärrmaskinen. Kan också anges per värd i konfigurationsfilen.
 
'''''-M'''''
      Sätter '''ssh'''-klienten i ”master”-läge för anslutningsdelning (multiplexing). Flera '''-M''' ger master-läge med bekräftelsekrav innan slavanslutningar accepteras. Se ''ControlMaster'' i [[ssh_config(5)]].
 
'''''-m''''' ''mac_spec''
      För protokoll version 2: kommaseparerad lista av MAC-algoritmer i prioriteringsordning. Se ''MACs'' i [[ssh_config(5)]].
 
'''''-N'''''
      Kör inte något fjärrkommando. Användbart för enbart portvidarebefordran (endast protokoll 2).
 
'''''-n'''''
      Omdirigerar stdin från ''/dev/null'' (förhindrar läsning från stdin). Måste användas när '''ssh''' körs i bakgrunden. Exempel:
<pre>
ssh -n shadows.cs.hut.fi emacs &
</pre>
      Detta startar emacs på fjärrvärden och X11 vidarebefordras automatiskt. Fungerar inte om '''ssh''' behöver fråga efter lösenord/lösenfras; se även '''-f'''.
 
'''''-O''''' ''ctl_cmd''
      Styr en aktiv multiplexing-masterprocess. Giltiga kommandon: ''check'' (kontrollera att master kör) och ''exit'' (be master avsluta).
 
'''''-o''''' ''option''
      Anger alternativ i samma format som i konfigurationsfilen. Användbart för alternativ som saknar egen flagga. Se [[ssh_config(5)]] för fullständig lista och värden.
 
      Vanliga nyckelord (urval):
<pre>
AddressFamily, BatchMode, BindAddress, ChallengeResponseAuthentication, CheckHostIP,
Cipher, Ciphers, Compression, CompressionLevel, ConnectionAttempts, ConnectTimeout,
ControlMaster, ControlPath, DynamicForward, EscapeChar, ExitOnForwardFailure,
ForwardAgent, ForwardX11, ForwardX11Trusted, GatewayPorts, GlobalKnownHostsFile,
GSSAPIAuthentication, GSSAPIDelegateCredentials, HashKnownHosts, Host, HostName,
IdentityFile, IdentitiesOnly, KbdInteractiveDevices, LocalCommand, LocalForward,
LogLevel, MACs, NumberOfPasswordPrompts, PasswordAuthentication, Port,
PreferredAuthentications, Protocol, ProxyCommand, PubkeyAuthentication, RekeyLimit,
RemoteForward, RSAAuthentication, SendEnv, ServerAliveInterval, ServerAliveCountMax,
StrictHostKeyChecking, TCPKeepAlive, Tunnel, TunnelDevice, User, UserKnownHostsFile,
VerifyHostKeyDNS, VisualHostKey, XAuthLocation
</pre>
 
'''''-p''''' ''port''
      Port att ansluta till på fjärrvärden. Kan anges per värd i konfigurationsfilen.
 
'''''-q'''''
      Tyst läge. Undertrycker de flesta varningar och diagnostik.
 
'''''-R''''' [ ''bind_address'' : ] ''port'' : ''host'' : ''hostport''
      Anger att den givna porten på fjärrvärden (servern) ska vidarebefordras till angiven värd och port på den lokala sidan. Servern lyssnar på ''port'' och när anslutningar kommer vidarebefordras de över den säkra kanalen och en anslutning görs från den lokala maskinen till ''host:hostport''.
 
      Portvidarebefordran kan också anges i konfigurationsfilen. Privilegierade portar kan endast vidarebefordras när man loggar in som root på fjärrmaskinen. IPv6 kan anges med hakparenteser eller alternativ syntax: [bind_address/]host/port/hostport.
 
      Som standard binds lyssningssocketen på servern endast till loopback. Detta kan åsidosättas med ''bind_address''. Tom ''bind_address'' eller ”*” betyder alla gränssnitt. En explicit fjärr-''bind_address'' lyckas bara om serverns ''GatewayPorts'' är aktiverat (se [[sshd_config(5)]]).
 
      Om ''port''-argumentet är ”0” allokeras lyssningsport dynamiskt och rapporteras till klienten vid körning.
 
'''''-S''''' ''ctl_path''
      Anger platsen för en kontrollsocket för anslutningsdelning. Se ''ControlPath'' och ''ControlMaster'' i [[ssh_config(5)]].
 
'''''-s'''''
      Kan användas för att begära ett subsystem på fjärrsystemet. Subsystem är en SSH2-funktion som underlättar användning av SSH som säker transport för andra applikationer (t.ex. [[sftp(1)]]). Subsystemet anges som fjärrkommando.
 
'''''-T'''''
      Inaktivera pseudo-tty-allokering.
 
'''''-t'''''
      Tvinga pseudo-tty-allokering. Användbart för skärmbaserade program. Flera '''-t''' tvingar tty även om '''ssh''' saknar lokal tty.
 
'''''-V'''''
      Visa versionsnummer och avsluta.
 
'''''-v'''''
      Utförligt läge. Skriver debugmeddelanden om förloppet. Flera '''-v''' ökar utförligheten (max 3).
 
'''''-W''''' ''host'' : ''port''
      Begär att standard in och standard ut på klienten vidarebefordras till ''host:port'' över den säkra kanalen. Implicerar '''-N''', '''-T'', ''ExitOnForwardFailure'' och ''ClearAllForwardings'', och fungerar endast med protokoll version 2.
 
'''''-w''''' ''local_tun'' [ : ''remote_tun'' ]
      Begär tunnel-enhetsvidarebefordran med angivna [[tun(4)]]-enheter mellan klienten (''local_tun'') och servern (''remote_tun'').
 
      Enheter kan anges med numeriskt ID eller nyckelordet ''any'' (nästa lediga). Om ''remote_tun'' inte anges används ''any''. Se även ''Tunnel'' och ''TunnelDevice'' i [[ssh_config(5)]]. Om ''Tunnel'' inte är satt blir standard tunnel-läge ''point-to-point''.
 
'''''-X'''''
      Aktiverar X11-vidarebefordran. Kan också anges per värd.
 
      X11-vidarebefordran bör användas med försiktighet. Användare som kan kringgå filrättigheter på fjärrvärden (för användarens X-auktorisationsdatabas) kan nå den lokala X11-skärmen via den vidarebefordrade anslutningen. En angripare kan då t.ex. övervaka tangenttryckningar.
 
      Därför begränsas X11-vidarebefordran som standard av X11 SECURITY-tillägget. Se '''ssh -Y''' samt ''ForwardX11Trusted'' i [[ssh_config(5)]].
 
'''''-x'''''
      Inaktiverar X11-vidarebefordran.
 
'''''-Y'''''
      Aktiverar ”betrodd” X11-vidarebefordran. Betrodd X11 påverkas inte av X11 SECURITY-kontroller.
 
'''''-y'''''
      Skicka logginformation via [[syslog(3)]]. Standard är att skicka till stderr.
 
'''ssh''' kan dessutom hämta konfigurationsdata från en per-användare-konfigurationsfil och en systemomfattande konfigurationsfil. Filformat och alternativ beskrivs i [[ssh_config(5)]].
 
'''ssh''' avslutas med returstatus från fjärrkommandot, eller med 255 om ett fel inträffade.


== AUTENTISERING ==
== AUTENTISERING ==
OpenSSH stöder protokoll 1 och 2 (2 är standard; kan tvingas med '''-1'''/'''-2'''). Protokoll 2 rekommenderas (starkare konfidentialitet/integritet).
OpenSSH-klienten stöder SSH-protokoll version 1 och 2. Protokoll 2 är standard; '''ssh''' faller tillbaka till protokoll 1 om den upptäcker att protokoll 2 inte stöds. Inställningarna kan ändras via ''Protocol'' i [[ssh_config(5)]], eller tvingas med '''-1''' och '''-2'''.
Stödda metoder inkluderar GSSAPI, värdbaserad, publik nyckel, utmaning/svar och lösenord. Ordningen kan påverkas via ''PreferredAuthentications''.
 
Båda protokollen stöder liknande autentiseringsmetoder, men protokoll 2 föredras eftersom det har fler mekanismer för konfidentialitet (trafiken kan krypteras med t.ex. AES, 3DES, Blowfish, CAST128 eller Arcfour) och integritet (t.ex. hmac-md5, hmac-sha1, umac-64, hmac-ripemd160). Protokoll 1 saknar en stark integritetsmekanism.
 
Tillgängliga metoder: GSSAPI-baserad autentisering, värdbaserad autentisering, publik nyckel, challenge-response, samt lösenord. Metoderna prövas i den ordningen (protokoll 2 kan ändra standardordningen med ''PreferredAuthentications'').
 
'''Värdbaserad autentisering''' fungerar förenklat så här: Om klientmaskinen finns listad i ''/etc/hosts.equiv'' eller ''/etc/ssh/shosts.equiv'' på fjärrmaskinen och användarnamnen är samma på båda sidor, eller om ''~/.rhosts'' eller ''~/.shosts'' finns på fjärrmaskinen och innehåller en rad med klientmaskinens namn och användaren på den maskinen, så kan inloggning tillåtas – under förutsättning att servern också kan verifiera klientens värdnyckel (se ''/etc/ssh/ssh_known_hosts'' och ''~/.ssh/known_hosts''). Metoden stänger säkerhetshål relaterade till IP/DNS/routing-spoofing. (Observera: ''/etc/hosts.equiv'', ''~/.rhosts'' och rlogin/rsh-protokoll är i grunden osäkra och bör inaktiveras om man vill ha säkerhet.)
 
'''Publik nyckel''' fungerar så här: Varje användare skapar ett nyckelpar (publik/privat). Servern känner till den publika nyckeln, och endast användaren känner till den privata. '''ssh''' implementerar detta automatiskt med RSA eller DSA. Protokoll 1 är begränsat till RSA, protokoll 2 kan använda båda. Filen ''~/.ssh/authorized_keys'' listar publika nycklar som får logga in.
 
Nycklar skapas med [[ssh-keygen(1)]]. Den privata nyckeln sparas i ''~/.ssh/identity'' (protokoll 1), ''~/.ssh/id_dsa'' (protokoll 2 DSA) eller ''~/.ssh/id_rsa'' (protokoll 2 RSA). Publika nyckeln sparas i motsvarande ''.pub''-fil. Kopiera sedan den publika nyckeln till ''~/.ssh/authorized_keys'' på fjärrmaskinen. Därefter kan man ofta logga in utan lösenord.
 
Det bekvämaste sättet att använda nycklar kan vara via en autentiseringsagent; se [[ssh-agent(1)]].
 
'''Challenge-response''' innebär att servern skickar ett ”challenge”-textstycke och ber om ett svar. Protokoll 2 tillåter flera utmaningar; protokoll 1 bara en. Exempel: BSD Authentication (se ''login.conf''(5)) och PAM (på vissa system).
 
Om andra metoder misslyckas frågar '''ssh''' efter ett lösenord. Lösenordet skickas för kontroll, men eftersom kommunikationen är krypterad kan det inte ses av någon som lyssnar på nätet.
 
'''ssh''' underhåller och kontrollerar automatiskt en databas över värdar den använts mot. Värdnycklar lagras i ''~/.ssh/known_hosts''. Dessutom kontrolleras ''/etc/ssh/ssh_known_hosts''. Nya värdar läggs automatiskt till. Om en värds identitet ändras varnar '''ssh''' och inaktiverar lösenordsautentisering för att motverka spoofing/”man-in-the-middle”. ''StrictHostKeyChecking'' styr inloggningar när värdnyckel är okänd eller ändrad.


=== Värdbaserad autentisering ===
När identiteten accepterats kör servern angivet kommando eller ger användaren ett normalt skal. All kommunikation är krypterad.
Kräver matchning mellan klientvärd och användare via ''/etc/hosts.equiv'', ''/etc/ssh/shosts.equiv'' eller användarens ''~/.rhosts''/''~/.shosts'', samt att servern kan verifiera klientens värdnyckel (''/etc/ssh/ssh_known_hosts'', ''~/.ssh/known_hosts''). Rlogin/rsh-varianten är osäker och bör undvikas.


=== Publik nyckel ===
Om en pseudo-terminal allokerats (normal inloggning) kan användaren använda escape-tecken (se nedan). Om ingen pseudo-tty allokerats är sessionen transparent och kan användas för binär data. Att sätta escape-tecknet till ''none'' gör sessionen transparent även med tty.
Nyckelpar skapas med [[ssh-keygen(1)]]. Privata nycklar i ''~/.ssh/id_rsa'', ''id_dsa'' etc.; publika i ''*.pub''. Auktoriserade nycklar listas i ''~/.ssh/authorized_keys''. [[ssh-agent(1)]] kan hålla nycklar i minnet.


=== Lösenord och utmaning/svar ===
Sessionen avslutas när fjärrkommando/skalet avslutas och alla X11- och TCP-anslutningar har stängts.
Om andra metoder misslyckas frågar '''ssh''' efter lösenord (transporteras krypterat). Utmaning/svar kan använda BSD Authentication eller PAM.


== ESCAPE-TECKEN ==
== ESCAPE-TECKEN ==
När pty är allokerad känns escape-tecken (standard '''~''') igen i början av en rad:
När en pseudo-terminal begärts stödjer '''ssh''' flera funktioner via ett escape-tecken.
 
Ett enda tilde-tecken kan skickas som '''~~''' eller genom att följa tilde med ett annat tecken än de som beskrivs nedan. Escape-tecknet måste alltid följa en newline för att tolkas som special. Escape-tecknet kan ändras med ''EscapeChar'' i konfigurationsfilen eller via '''-e'''.
 
Stödda escapes (med standard ”~”):
<pre>
<pre>
~.   Koppla ner
~.   Koppla från.
~^Z Bakgrundsspåra ssh
~^Z   Lägg ssh i bakgrunden.
~#   Lista vidarebefordrade anslutningar
~#   Lista vidarebefordrade anslutningar.
~&   Bakgrund vid utloggning (väntar på forwards/X11)
~&   Lägg ssh i bakgrunden vid utloggning när ssh väntar på att vidarebefordrade anslutningar/X11-sessioner ska avslutas.
~?   Visa hjälplista
~?   Visa lista över escape-tecken.
~B   Skicka BREAK (v2, om peer stöder)
~B   Skicka BREAK till fjärrsystemet (endast protokoll 2 om motparten stöder det).
~C   Öppna kommandoläge: lägg till -L/-R/-D eller ta bort -KR[bind_adress:]port
~C   Öppna kommandorad (lägga till/cancel portvidarebefordran, m.m.).
~R   Begär nyckelomförhandling (rekey) (v2, om peer stöder)
~R   Begär omnyckling (rekey) av anslutningen (endast protokoll 2 om motparten stöder det).
</pre>
</pre>
Escape-tecknet kan ändras via ''-e'' eller ''EscapeChar'' i [[ssh_config(5)]]; ''none'' stänger av.


== TCP-VIDAREBEFORDRAN ==
== TCP-VIDAREBEFORDRAN ==
Godtyckliga TCP-anslutningar kan tunnlas. Exempel (IRC):
Vidarebefordran av godtyckliga TCP-anslutningar över den säkra kanalen kan anges på kommandoraden eller i en konfigurationsfil. Ett exempel är en säker anslutning till en e‑postserver; ett annat är att passera brandväggar.
 
Exempel: tunnla en IRC-session från klienten ''127.0.0.1'' (localhost) till fjärrservern ''server.example.com'':
<pre>
<pre>
$ ssh -f -L 1234:localhost:6667 server.example.com sleep 10
$ ssh -f -L 1234:localhost:6667 server.example.com sleep 10
$ irc -c '#users' -p 1234 pinky 127.0.0.1
$ irc -c '#users' -p 1234 pinky 127.0.0.1
</pre>
</pre>
Detta tunnlar en anslutning till IRC-servern, går in i kanalen ''#users'', smeknamn ''pinky'', via port 1234. Porten spelar ingen roll så länge den är >1023 och inte krockar med andra portar. Anslutningen vidarebefordras till port 6667 på fjärrservern (standard för IRC). '''-f''' lägger '''ssh''' i bakgrunden och fjärrkommandot ''sleep 10'' ger tid att starta tjänsten. Om inga anslutningar sker inom tidsgränsen avslutar '''ssh'''.


== X11-VIDAREBEFORDRAN ==
== X11-VIDAREBEFORDRAN ==
Med '''-X''' (eller ''ForwardX11 yes'') sätts DISPLAY till en proxydisplay och Xauthority hanteras automatiskt. ''-Y''/''ForwardX11Trusted yes'' aktiverar betrodd X11 (mindre restriktioner, använd försiktigt).
Om ''ForwardX11'' är ''yes'' (eller via '''-X''', '''-x''', '''-Y'') och användaren använder X11 (DISPLAY är satt), vidarebefordras X11-anslutningen till fjärrsidan så att program som startas på fjärrskalet går via den krypterade kanalen. Användaren ska normalt inte sätta DISPLAY manuellt.
 
DISPLAY-värdet som sätts av '''ssh''' pekar på servermaskinen men med ett displaynummer större än noll; detta är normalt och beror på att '''ssh''' skapar en ”proxy”-X-server på servern. '''ssh''' sätter också upp Xauthority-data genom att skapa en slumpmässig cookie och verifiera vidarebefordrade anslutningar; den riktiga cookien skickas aldrig i klartext.
 
Om ''ForwardAgent'' är ''yes'' (eller via '''-A'''/'''-a''') och användaren använder en agent, vidarebefordras agentanslutningen till fjärrsidan.


== VERIFIERING AV VÄRDSNYCKLAR ==
== VERIFIERA VÄRDNYCKLAR ==
Vid första anslutning visas serverns fingeravtryck (om ''StrictHostKeyChecking'' inte avaktiverats).
När man ansluter till en server första gången visas ett fingeravtryck av serverns publika nyckel (om inte ''StrictHostKeyChecking'' är avstängt). Fingeravtryck kan tas fram med [[ssh-keygen(1)]], t.ex.:
<pre>
<pre>
$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
$ ssh-keygen -lv -f ~/.ssh/known_hosts  # med "random art"
</pre>
</pre>
Fingeravtryck kan verifieras via DNS (SSHFP) med ''VerifyHostKeyDNS''; kontrollera med t.ex. ''dig -t SSHFP''.


== SSH-BASERADE VPN:er ==
Det finns även stöd för visuell jämförelse av värdnycklar via ”random art”. Sätt ''VisualHostKey'' till ''yes'' för att få en liten ASCII-grafik vid varje inloggning. Mönstret är inte unikt, men ger en sannolikhetsindikator.
'''ssh''' kan skapa VPN-tunnlar med '''tun(4)''' om ''PermitTunnel'' tillåter det i [[sshd_config(5)]]. Exempel som kopplar 10.0.50.0/24 ↔ 10.0.99.0/24:
 
För att lista fingeravtryck och random art för alla kända värdar:
<pre>
$ ssh-keygen -lv -f ~/.ssh/known_hosts
</pre>
 
Alternativt kan SSHFP-poster i DNS användas för att verifiera fingeravtryck (se ''VerifyHostKeyDNS'' i [[ssh_config(5)]]). Exempel på generering:
<pre>
$ ssh-keygen -r host.example.com.
</pre>
Kontrollera zonen:
<pre>
$ dig -t SSHFP host.example.com
</pre>
Anslut med fråga:
<pre>
<pre>
# Klient
$ ssh -o "VerifyHostKeyDNS ask" host.example.com
ssh -f -w 0:1 192.168.1.15 true
</pre>
ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
 
route add 10.0.99.0/24 10.1.1.2
== SSH-BASERADE VPN ==
'''ssh''' kan tunnla VPN-trafik via [[tun(4)]]. Serverns ''PermitTunnel'' i [[sshd_config(5)]] styr om och på vilken nivå (lager 2 eller 3) detta stöds.
 
Exempel: koppla klientnätet 10.0.50.0/24 med fjärrnätet 10.0.99.0/24 via en punkt-till-punkt-länk (förutsatt att SSH-servern på gateway 192.168.1.15 tillåter det).


# Server
På klienten:
ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
<pre>
route add 10.0.50.0/24 10.1.1.1
# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2
</pre>
På servern:
<pre>
# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1
</pre>
</pre>
För permanenta VPN-lösningar är IPsec/liknande ofta bättre.


== MILJÖVARIABLER ==
Klientåtkomst kan finjusteras via ''/root/.ssh/authorized_keys'' och serverns ''PermitRootLogin''. Exempel (för ”forced-commands-only”):
'''ssh''' sätter typiskt:
<pre>
; '''DISPLAY''' : Pekar på proxydisplay ''värd:n'' för X11-forwarding.
tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
; '''HOME''', '''USER''', '''LOGNAME''', '''MAIL''', '''PATH''' : Grundläggande miljö.
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john
; '''SSH_ASKPASS''' : GUI-inmatning av lösenfras om ingen tty finns.
</pre>
; '''SSH_AUTH_SOCK''' : Sökväg till agentens UNIX-socket.
; '''SSH_CONNECTION''' : ''cli_ip cli_port srv_ip srv_port''.
; '''SSH_ORIGINAL_COMMAND''' : Ursprunglig kommandorad vid tvingat kommando.
; '''SSH_TTY''' : Namn på tty för sessionen (om någon).
; '''TZ''' : Tidszon (ärvd).
Dessutom läses ''~/.ssh/environment'' om ''PermitUserEnvironment'' tillåter.


=== Särskilt ===
Eftersom SSH-baserad VPN har en del overhead passar den ofta bättre för temporära upplägg (t.ex. trådlösa VPN). Mer permanenta VPN-lösningar kan göras med verktyg som ''ipsecctl''(8) och ''isakmpd''(8).
; '''SSH_USE_STRONG_RNG''' : Om satt 0 reseedas RNG från ''/dev/random'' (minst 6 byte). Kan blockera på system med låg entropi.
 
== MILJÖ ==
'''ssh''' sätter normalt följande miljövariabler:
 
''DISPLAY''
      Anger platsen för X11-servern. Sätts automatiskt av '''ssh''' till formen ''hostname:n'' där ''hostname'' är värden där skalet kör och ''n'' är ett heltal ≥ 1. Detta specialvärde används för X11-vidarebefordran. Användaren bör normalt inte sätta DISPLAY manuellt, eftersom det gör X11-anslutningen osäker och kräver manuell hantering av auktorisationscookies.
 
''HOME''
      Sätts till sökvägen för användarens hemkatalog.
 
''LOGNAME''
      Synonym för USER; för kompatibilitet.
 
''MAIL''
      Sätts till sökvägen för användarens brevlåda.
 
''PATH''
      Sätts till standard-PATH enligt kompilering av '''ssh'''.
 
''SSH_ASKPASS''
      Om '''ssh''' behöver en lösenfras läser den från terminalen om den körs i terminal. Om ingen terminal finns men DISPLAY och SSH_ASKPASS är satta, körs programmet i SSH_ASKPASS och ett X11-fönster används för inmatning. Detta är användbart t.ex. från ''.xsession''. (Ibland behöver stdin omdirigeras från ''/dev/null''.)
 
''SSH_AUTH_SOCK''
      Anger sökvägen till en UNIX-domänsocket för agentkommunikation.
 
''SSH_CONNECTION''
      Fyra mellanslagsseparerade värden: klient-IP, klientport, server-IP, serverport.
 
''SSH_ORIGINAL_COMMAND''
      Innehåller ursprunglig kommandorad när ett ”forced command” körs.
 
''SSH_TTY''
      Namnet på tty-enheten associerad med aktuellt skal/kommando (inte satt om ingen tty).
 
''TZ''
      Anger aktuell tidszon om den var satt när demonen startades (värdet förs vidare till nya anslutningar).
 
''USER''
      Namnet på användaren som loggar in.
 
Dessutom läser '''ssh''' ''~/.ssh/environment'' och lägger till rader av formen ''VARNAME=value'' om filen finns och om användare tillåts ändra sin miljö. Se ''PermitUserEnvironment'' i [[sshd_config(5)]].
 
''SSH_USE_STRONG_RNG''
      Normalt omseedas OpenSSL:s slumptalsgenerator från ''/dev/urandom''. Om miljövariabeln är satt till annat än ''0'' omseedas den från ''/dev/random''. Antalet byte definieras av värdet (minst 6). Detta rekommenderas inte på datorer utan hårdvarubaserad slumpgenerator eftersom otillräcklig entropi kan blockera anslutningen tills entropi finns.


== FILER ==
== FILER ==
; ''~/.rhosts'' / ''~/.shosts'' : För värdbaserad autentisering (osäkert; använd med försiktighet).
''~/.rhosts''
; ''~/.ssh/'' : Katalog för användarspecifik SSH-data.
      Används för värdbaserad autentisering. På vissa system kan den behöva vara världsläsbar om hemkatalogen ligger på NFS, eftersom [[sshd(8)]] läser den som root. Filen måste ägas av användaren och får inte vara skrivbar för andra. Rekommenderad behörighet: läs/skriv för användaren, inte åtkomlig för andra.
; ''~/.ssh/authorized_keys'' : Publika nycklar som får logga in.
; ''~/.ssh/config'' : Användarkonfiguration (se [[ssh_config(5)]]). Strikta rättigheter krävs.
; ''~/.ssh/identity'', ''id_dsa'', ''id_rsa'' : Privata nycklar (måste vara skyddade).
; ''~/.ssh/*.pub'' : Publika nycklar.
; ''~/.ssh/known_hosts'' : Användarens kända värdnycklar.
; ''~/.ssh/rc'' : Körs av ssh innan skalet startas.
; ''/etc/hosts.equiv'' / ''/etc/ssh/shosts.equiv'' : Systemomfattande motsvarigheter.
; ''/etc/ssh/ssh_config'' : Systemkonfig för klienten.
; ''/etc/ssh/ssh_host_key'', ''ssh_host_dsa_key'', ''ssh_host_rsa_key'' : Värdnycklar (privata delar).
; ''/etc/ssh/ssh_known_hosts'' : Systemlista över kända värdar.
; ''/etc/ssh/sshrc'' : Körs av ssh vid inloggning.


== IPV6 ==
''~/.shosts''
IPv6-adresser kan användas överallt. Omslut med hakparenteser i URI-liknande sammanhang: ''[2001:db8::1]''. Observera att hakparenteser är metatecken i många skal och kan behöva escapas.
      Används som ''.rhosts'' men tillåter värdbaserad autentisering utan att tillåta rlogin/rsh.
 
''~/.ssh/''
      Standardkatalog för användarspecifik konfiguration och autentiseringsinformation. Inget generellt krav att allt hålls hemligt, men rekommenderade rättigheter: läs/skriv/utför för användaren, ej åtkomlig för andra.
 
''~/.ssh/authorized_keys''
      Lista över publika nycklar (RSA/DSA) som får logga in som användaren. Format beskrivs i [[sshd(8)]]. Inte särskilt känslig, men rekommenderad behörighet: läs/skriv för användaren, ej åtkomlig för andra.
 
''~/.ssh/config''
      Per-användare-konfigurationsfil. På grund av missbrukspotential måste filen ha strikta rättigheter: läs/skriv för användaren, ej åtkomlig för andra.
 
''~/.ssh/environment''
      Extra definitioner av miljövariabler; se MILJÖ ovan.
 
''~/.ssh/identity'', ''~/.ssh/id_dsa'', ''~/.ssh/id_rsa''
      Privata nycklar. Känsliga data: ska vara läsbara av användaren men ej åtkomliga för andra (läs/skriv). '''ssh''' ignorerar en privat nyckelfil som är åtkomlig för andra. Nyckeln kan krypteras med en lösenfras (3DES).
 
''~/.ssh/identity.pub'', ''~/.ssh/id_dsa.pub'', ''~/.ssh/id_rsa.pub''
      Publika nycklar. Inte känsliga; kan vara läsbara för alla.
 
''~/.ssh/known_hosts''
      Lista över värdnycklar för värdar som användaren loggat in på och som inte redan finns i systemlistan. Se [[sshd(8)]] för format.
 
''~/.ssh/rc''
      Kommandon körs av '''ssh''' vid inloggning, precis före användarens skal (eller kommando) startas. Se [[sshd(8)]].
 
''/etc/hosts.equiv''
      För värdbaserad autentisering. Ska endast vara skrivbar av root.
 
''/etc/ssh/shosts.equiv''
      Som ''hosts.equiv'', men utan att tillåta rlogin/rsh.


== SE ÄVEN ==
''/etc/ssh/ssh_config''
[[scp(1)]], [[sftp(1)]], [[ssh-add(1)]], [[ssh-agent(1)]], [[ssh-keygen(1)]], [[ssh-keyscan(1)]], '''tun(4)''', [[hosts.equiv(5)]], [[ssh_config(5)]], [[ssh-keysign(8)]], [[sshd(8)]]. 
      Systemomfattande konfigurationsfil. Se [[ssh_config(5)]].
Standarder och referenser: RFC 4250–4256, RFC 4335, RFC 4344, RFC 4345, RFC 4419, RFC 4716; A. Perrig & D. Song, ”Hash Visualization…”, 1999.


== FÖRFATTARE ==
''/etc/ssh/ssh_host_key'', ''/etc/ssh/ssh_host_dsa_key'', ''/etc/ssh/ssh_host_rsa_key''
OpenSSH härstammar från Tatu Ylönens fria '''ssh''' 1.2.12. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt och Dug Song fixade många buggar, lade till nyare funktioner och skapade OpenSSH. Markus Friedl bidrog med stöd för protokoll 1.5 och 2.0.
      Innehåller privata delar av värdnycklar. För protokoll 1 måste '''ssh''' vara setuid root eftersom värdnyckeln är läsbar endast för root. För protokoll 2 används [[ssh-keysign(8)]] för åtkomst, vilket eliminerar kravet att '''ssh''' är setuid root vid värdbaserad autentisering. Som standard är '''ssh''' inte setuid root.


== REFERENSERAS AV ==
''/etc/ssh/ssh_known_hosts''
[[autossh(1)]], [[bvnc(1)]], [[byobu-launcher-install(1)]], [[byobu-launcher-uninstall(1)]], [[cdrecord(1)]], [[ckeygen(1)]], [[clogin(1)]], [[cloginrc(5)]], [[conch(1)]], [[cpdup(1)]], [[darcs(1)]], [[distcc(1)]], [[distccd(1)]], [[dsync(1)]], [[fetchmail(1)]], [[forward(1)]], [[gsh(1)]], [[gsissh-keygen(1)]], [[gsissh-keysign(8)]], [[gsissh_config(5)]], [[gsisshd(8)]], [[gsisshd_config(5)]], [[hb_report(8)]], [[isoinfo(1)]], [[isoinfo(8)]], [[kup(1)]], [[ldm(1)]], [[lsyncd(1)]], [[mirrordir(1)]], [[mkxauth(1)]], [[mussh(1)]], [[muttrc(5)]], [[nc(1)]], [[openvpn(8)]], [[pdcp(1)]], [[pdsh(1)]], [[pssh(1)]], [[pty(7)]], [[qodem(1)]], [[rancid.conf(5)]], [[rdiff-backup(1)]], [[rdist(1)]], [[readcd(1)]], [[readom(1)]], [[recon(1)]], [[router.db(5)]], [[rsnapshot(1)]], [[rssh(1)]], [[rssh.conf(5)]], [[safekeep(1)]], [[scponly(8)]], [[sftp-server(8)]], [[shmux(1)]], [[ssh-copy-id(1)]], [[sshfp(1)]], [[sshuttle(8)]], [[sss_ssh_knownhostsproxy(1)]], [[star(1)]], [[sudoers(5)]], [[tentakel(1)]], [[tkconch(1)]], [[tmux(1)]], [[wodim(1)]], [[x11vnc(1)]], [[xlock(1)]], [[zfs(8)]], [[ztelnet(1)]]
      Systemomfattande lista över kända värdnycklar. Ska vara förberedd av administratören och vara världsläsbar. Se [[sshd(8)]].


''/etc/ssh/sshrc''
      Kommandon körs vid inloggning, precis före skal/kommando. Se [[sshd(8)]].


= Sidslut =
== IPV6 ==
IPv6-adresser kan användas överallt där IPv4-adresser används. I alla poster måste IPv6-adressen vara innesluten i hakparenteser. Obs: hakparenteser är metatecken för skalet och måste escap:as i skal.


Orginalhemsidan på Engelska :https://linux.die.net/man/1/ssh
== SE ÄVEN ==
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
[[scp(1)]], [[sftp(1)]], [[ssh-add(1)]], [[ssh-agent(1)]], [[ssh-keygen(1)]], [[ssh-keyscan(1)]], [[tun(4)]], [[hosts.equiv(5)]], [[ssh_config(5)]], [[ssh-keysign(8)]], [[sshd(8)]]
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://datorhjalp.se Datorhjälp] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.


[[Kategori:Linuxmanual grupp 1]]
RFC: 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4335, 4344, 4345, 4419, 4716.
[[Kategori:Linuxmanual]]
 
== FÖRFATTARE ==
OpenSSH är en vidareutveckling av den ursprungliga fria ssh 1.2.12-utgåvan av Tatu Ylönen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt och Dug Song åtgärdade många buggar, återinförde nya funktioner och skapade OpenSSH. Markus Friedl bidrog med stöd för SSH-protokollversionerna 1.5 och 2.0.

Versionen från 2 februari 2026 kl. 07.36

SSH(1) — Linux manualsida

NAMN

ssh – OpenSSH SSH-klient (program för fjärrinloggning)

SYNOPSIS

ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
    [-D [bind_address:]port] [-e escape_char] [-F configfile]
    [-i identity_file] [-L [bind_address:]port:host:hostport]
    [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option]
    [-p port] [-R [bind_address:]port:host:hostport] [-S ctl_path]
    [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]

BESKRIVNING

ssh (SSH-klient) är ett program för att logga in på en fjärrmaskin och för att köra kommandon på en fjärrmaskin. Det är avsett att ersätta rlogin och rsh, och ge säker, krypterad kommunikation mellan två opålitliga värdar över ett osäkert nätverk. X11-anslutningar och godtyckliga TCP-portar kan också vidarebefordras över den säkra kanalen.

ssh ansluter och loggar in på den angivna hostname (med valfritt användarnamn user). Användaren måste bevisa sin identitet för fjärrmaskinen med någon av flera metoder beroende på vilken protokollversion som används (se nedan).

Om command anges körs det på fjärrvärden i stället för ett inloggningsskal.

ALTERNATIV

-1

     Tvingar ssh att försöka använda endast protokoll version 1.

-2

     Tvingar ssh att försöka använda endast protokoll version 2.

-4

     Tvingar ssh att endast använda IPv4-adresser.

-6

     Tvingar ssh att endast använda IPv6-adresser.

-A

     Aktiverar vidarebefordran av autentiseringsagentens anslutning. Detta kan också anges per värd i en konfigurationsfil.
     Agentvidarebefordran bör användas med försiktighet. Användare som kan kringgå filrättigheter på fjärrvärden (för agentens Unix-domänsocket) kan nå den lokala agenten via den vidarebefordrade anslutningen. En angripare kan inte hämta nyckelmaterial från agenten, men kan utföra operationer med nycklarna som gör det möjligt att autentisera sig med identiteter som är inlästa i agenten.

-a

     Inaktiverar vidarebefordran av autentiseringsagentens anslutning.

-b bind_address

     Använd bind_address på den lokala maskinen som källadress för anslutningen. Endast användbart på system med fler än en adress.

-C

     Begär komprimering av all data (inklusive stdin, stdout, stderr samt data för vidarebefordrade X11- och TCP-anslutningar). Komprimeringsalgoritmen är densamma som används av gzip(1), och ”nivån” kan styras av alternativet CompressionLevel för protokoll version 1. Komprimering är önskvärd på modemlinjer och andra långsamma anslutningar, men kan bara göra saker långsammare på snabba nät. Standardvärdet kan sättas per värd i konfigurationsfilerna; se Compression.

-c cipher_spec

     Väljer chifferspecifikation för att kryptera sessionen.
     Protokoll version 1 tillåter specifikation av ett enda chiffer. Stödda värden: 3des, blowfish och des. 3des (triple-des) är en encrypt-decrypt-encrypt-trippel med tre olika nycklar och anses säker. blowfish är ett snabbt blockchiffer; det verkar mycket säkert och är mycket snabbare än 3des. des stöds endast för interoperabilitet med äldre implementationer av protokoll 1 som inte stöder 3des; användning avråds starkt p.g.a. kryptografiska svagheter. Standard är 3des.
     För protokoll version 2 är cipher_spec en kommaseparerad lista av chiffer i prioriteringsordning. Se nyckelordet Ciphers i ssh_config(5) för mer information.

-D [ bind_address : ] port

     Anger lokal ”dynamisk” portvidarebefordran på applikationsnivå. Detta fungerar genom att allokera en socket som lyssnar på port på den lokala sidan, valfritt bunden till bind_address. När en anslutning görs till denna port vidarebefordras den över den säkra kanalen och applikationsprotokollet används för att avgöra vart man ska ansluta från fjärrmaskinen. För närvarande stöds SOCKS4 och SOCKS5 och ssh fungerar som en SOCKS-server. Endast root kan vidarebefordra privilegierade portar. Dynamisk vidarebefordran kan också anges i konfigurationsfilen.
     IPv6-adresser kan anges med alternativ syntax: [bind_address/ ]port eller genom att omge adressen med hakparenteser. Endast superuser kan vidarebefordra privilegierade portar. Som standard binds den lokala porten enligt GatewayPorts. En explicit bind_address kan dock användas för att binda till en specifik adress. bind_address localhost betyder att lyssningsporten bara binds lokalt; tom adress eller ”*” betyder att porten ska vara tillgänglig från alla gränssnitt.

-e escape_char

     Sätter escape-tecknet för sessioner med pty (standard: ”~”). Escape-tecknet känns bara igen i början av en rad. Escape följt av punkt ”.” stänger anslutningen; följt av control-Z suspenderar; följt av sig självt skickar escape-tecknet en gång. Tecknet none inaktiverar alla escapes och gör sessionen helt transparent.

-F configfile

     Anger alternativ per-användare-konfigurationsfil. Om en konfigurationsfil anges på kommandoraden ignoreras den systemomfattande konfigurationsfilen (/etc/ssh/ssh_config). Standard per-användare-fil är ~/.ssh/config.

-f

Begär att ssh går till bakgrunden strax före kommandoexekvering. Detta är användbart om ssh kommer att fråga efter lösenord/lösenfraser men användaren vill ha processen i bakgrunden. Detta implicerar -n. Rekommenderat sätt att starta X11-program på fjärrsidan:

ssh -f host xterm
     Om konfigurationsalternativet ExitOnForwardFailure är yes kommer en klient startad med -f att vänta på att alla fjärrvidarebefordringar har etablerats innan den lägger sig i bakgrunden.

-g

     Tillåter fjärrvärdar att ansluta till lokalt vidarebefordrade portar.

-I smartcard_device

     Anger enhet som ssh ska använda för att kommunicera med ett smartkort som lagrar användarens privata RSA-nyckel. Endast tillgängligt om smartkortsstöd kompilerats in.

-i identity_file

     Väljer fil från vilken identiteten (privat nyckel) för RSA- eller DSA-autentisering läses. Standard: ~/.ssh/identity (protokoll 1) och ~/.ssh/id_rsa samt ~/.ssh/id_dsa (protokoll 2). Identitetsfiler kan också anges per värd. Flera -i kan användas.

-K

     Aktiverar GSSAPI-baserad autentisering och vidarebefordran (delegering) av GSSAPI-referenser till servern.

-k

     Inaktiverar vidarebefordran (delegering) av GSSAPI-referenser till servern.

-L [ bind_address : ] port : host : hostport

     Anger att den givna porten på den lokala (klient)värden ska vidarebefordras till angiven värd och port på fjärrsidan. Detta fungerar genom att lyssna på port lokalt (valfritt bunden till bind_address). När en anslutning görs vidarebefordras den över den säkra kanalen och en anslutning görs från fjärrmaskinen till host:hostport. Portvidarebefordran kan också anges i konfigurationsfilen.
     IPv6-adresser kan anges med alternativ syntax: [bind_address/ ]port/host/hostport eller genom att omge adressen med hakparenteser. Endast superuser kan vidarebefordra privilegierade portar. Standardbindning följer GatewayPorts; explicit bind_address kan binda till specifik adress. localhost betyder endast lokalt; tom adress eller ”*” betyder alla gränssnitt.

-l login_name

     Anger användare att logga in som på fjärrmaskinen. Kan också anges per värd i konfigurationsfilen.

-M

     Sätter ssh-klienten i ”master”-läge för anslutningsdelning (multiplexing). Flera -M ger master-läge med bekräftelsekrav innan slavanslutningar accepteras. Se ControlMaster i ssh_config(5).

-m mac_spec

     För protokoll version 2: kommaseparerad lista av MAC-algoritmer i prioriteringsordning. Se MACs i ssh_config(5).

-N

     Kör inte något fjärrkommando. Användbart för enbart portvidarebefordran (endast protokoll 2).

-n

     Omdirigerar stdin från /dev/null (förhindrar läsning från stdin). Måste användas när ssh körs i bakgrunden. Exempel:
ssh -n shadows.cs.hut.fi emacs &
     Detta startar emacs på fjärrvärden och X11 vidarebefordras automatiskt. Fungerar inte om ssh behöver fråga efter lösenord/lösenfras; se även -f.

-O ctl_cmd

     Styr en aktiv multiplexing-masterprocess. Giltiga kommandon: check (kontrollera att master kör) och exit (be master avsluta).

-o option

     Anger alternativ i samma format som i konfigurationsfilen. Användbart för alternativ som saknar egen flagga. Se ssh_config(5) för fullständig lista och värden.
     Vanliga nyckelord (urval):
AddressFamily, BatchMode, BindAddress, ChallengeResponseAuthentication, CheckHostIP,
Cipher, Ciphers, Compression, CompressionLevel, ConnectionAttempts, ConnectTimeout,
ControlMaster, ControlPath, DynamicForward, EscapeChar, ExitOnForwardFailure,
ForwardAgent, ForwardX11, ForwardX11Trusted, GatewayPorts, GlobalKnownHostsFile,
GSSAPIAuthentication, GSSAPIDelegateCredentials, HashKnownHosts, Host, HostName,
IdentityFile, IdentitiesOnly, KbdInteractiveDevices, LocalCommand, LocalForward,
LogLevel, MACs, NumberOfPasswordPrompts, PasswordAuthentication, Port,
PreferredAuthentications, Protocol, ProxyCommand, PubkeyAuthentication, RekeyLimit,
RemoteForward, RSAAuthentication, SendEnv, ServerAliveInterval, ServerAliveCountMax,
StrictHostKeyChecking, TCPKeepAlive, Tunnel, TunnelDevice, User, UserKnownHostsFile,
VerifyHostKeyDNS, VisualHostKey, XAuthLocation

-p port

     Port att ansluta till på fjärrvärden. Kan anges per värd i konfigurationsfilen.

-q

     Tyst läge. Undertrycker de flesta varningar och diagnostik.

-R [ bind_address : ] port : host : hostport

     Anger att den givna porten på fjärrvärden (servern) ska vidarebefordras till angiven värd och port på den lokala sidan. Servern lyssnar på port och när anslutningar kommer vidarebefordras de över den säkra kanalen och en anslutning görs från den lokala maskinen till host:hostport.
     Portvidarebefordran kan också anges i konfigurationsfilen. Privilegierade portar kan endast vidarebefordras när man loggar in som root på fjärrmaskinen. IPv6 kan anges med hakparenteser eller alternativ syntax: [bind_address/]host/port/hostport.
     Som standard binds lyssningssocketen på servern endast till loopback. Detta kan åsidosättas med bind_address. Tom bind_address eller ”*” betyder alla gränssnitt. En explicit fjärr-bind_address lyckas bara om serverns GatewayPorts är aktiverat (se sshd_config(5)).
     Om port-argumentet är ”0” allokeras lyssningsport dynamiskt och rapporteras till klienten vid körning.

-S ctl_path

     Anger platsen för en kontrollsocket för anslutningsdelning. Se ControlPath och ControlMaster i ssh_config(5).

-s

     Kan användas för att begära ett subsystem på fjärrsystemet. Subsystem är en SSH2-funktion som underlättar användning av SSH som säker transport för andra applikationer (t.ex. sftp(1)). Subsystemet anges som fjärrkommando.

-T

     Inaktivera pseudo-tty-allokering.

-t

     Tvinga pseudo-tty-allokering. Användbart för skärmbaserade program. Flera -t tvingar tty även om ssh saknar lokal tty.

-V

     Visa versionsnummer och avsluta.

-v

     Utförligt läge. Skriver debugmeddelanden om förloppet. Flera -v ökar utförligheten (max 3).

-W host : port

     Begär att standard in och standard ut på klienten vidarebefordras till host:port över den säkra kanalen. Implicerar -N', -T, ExitOnForwardFailure och ClearAllForwardings, och fungerar endast med protokoll version 2.

-w local_tun [ : remote_tun ]

     Begär tunnel-enhetsvidarebefordran med angivna tun(4)-enheter mellan klienten (local_tun) och servern (remote_tun).
     Enheter kan anges med numeriskt ID eller nyckelordet any (nästa lediga). Om remote_tun inte anges används any. Se även Tunnel och TunnelDevice i ssh_config(5). Om Tunnel inte är satt blir standard tunnel-läge point-to-point.

-X

     Aktiverar X11-vidarebefordran. Kan också anges per värd.
     X11-vidarebefordran bör användas med försiktighet. Användare som kan kringgå filrättigheter på fjärrvärden (för användarens X-auktorisationsdatabas) kan nå den lokala X11-skärmen via den vidarebefordrade anslutningen. En angripare kan då t.ex. övervaka tangenttryckningar.
     Därför begränsas X11-vidarebefordran som standard av X11 SECURITY-tillägget. Se ssh -Y samt ForwardX11Trusted i ssh_config(5).

-x

     Inaktiverar X11-vidarebefordran.

-Y

     Aktiverar ”betrodd” X11-vidarebefordran. Betrodd X11 påverkas inte av X11 SECURITY-kontroller.

-y

     Skicka logginformation via syslog(3). Standard är att skicka till stderr.

ssh kan dessutom hämta konfigurationsdata från en per-användare-konfigurationsfil och en systemomfattande konfigurationsfil. Filformat och alternativ beskrivs i ssh_config(5).

ssh avslutas med returstatus från fjärrkommandot, eller med 255 om ett fel inträffade.

AUTENTISERING

OpenSSH-klienten stöder SSH-protokoll version 1 och 2. Protokoll 2 är standard; ssh faller tillbaka till protokoll 1 om den upptäcker att protokoll 2 inte stöds. Inställningarna kan ändras via Protocol i ssh_config(5), eller tvingas med -1 och -2.

Båda protokollen stöder liknande autentiseringsmetoder, men protokoll 2 föredras eftersom det har fler mekanismer för konfidentialitet (trafiken kan krypteras med t.ex. AES, 3DES, Blowfish, CAST128 eller Arcfour) och integritet (t.ex. hmac-md5, hmac-sha1, umac-64, hmac-ripemd160). Protokoll 1 saknar en stark integritetsmekanism.

Tillgängliga metoder: GSSAPI-baserad autentisering, värdbaserad autentisering, publik nyckel, challenge-response, samt lösenord. Metoderna prövas i den ordningen (protokoll 2 kan ändra standardordningen med PreferredAuthentications).

Värdbaserad autentisering fungerar förenklat så här: Om klientmaskinen finns listad i /etc/hosts.equiv eller /etc/ssh/shosts.equiv på fjärrmaskinen och användarnamnen är samma på båda sidor, eller om ~/.rhosts eller ~/.shosts finns på fjärrmaskinen och innehåller en rad med klientmaskinens namn och användaren på den maskinen, så kan inloggning tillåtas – under förutsättning att servern också kan verifiera klientens värdnyckel (se /etc/ssh/ssh_known_hosts och ~/.ssh/known_hosts). Metoden stänger säkerhetshål relaterade till IP/DNS/routing-spoofing. (Observera: /etc/hosts.equiv, ~/.rhosts och rlogin/rsh-protokoll är i grunden osäkra och bör inaktiveras om man vill ha säkerhet.)

Publik nyckel fungerar så här: Varje användare skapar ett nyckelpar (publik/privat). Servern känner till den publika nyckeln, och endast användaren känner till den privata. ssh implementerar detta automatiskt med RSA eller DSA. Protokoll 1 är begränsat till RSA, protokoll 2 kan använda båda. Filen ~/.ssh/authorized_keys listar publika nycklar som får logga in.

Nycklar skapas med ssh-keygen(1). Den privata nyckeln sparas i ~/.ssh/identity (protokoll 1), ~/.ssh/id_dsa (protokoll 2 DSA) eller ~/.ssh/id_rsa (protokoll 2 RSA). Publika nyckeln sparas i motsvarande .pub-fil. Kopiera sedan den publika nyckeln till ~/.ssh/authorized_keys på fjärrmaskinen. Därefter kan man ofta logga in utan lösenord.

Det bekvämaste sättet att använda nycklar kan vara via en autentiseringsagent; se ssh-agent(1).

Challenge-response innebär att servern skickar ett ”challenge”-textstycke och ber om ett svar. Protokoll 2 tillåter flera utmaningar; protokoll 1 bara en. Exempel: BSD Authentication (se login.conf(5)) och PAM (på vissa system).

Om andra metoder misslyckas frågar ssh efter ett lösenord. Lösenordet skickas för kontroll, men eftersom kommunikationen är krypterad kan det inte ses av någon som lyssnar på nätet.

ssh underhåller och kontrollerar automatiskt en databas över värdar den använts mot. Värdnycklar lagras i ~/.ssh/known_hosts. Dessutom kontrolleras /etc/ssh/ssh_known_hosts. Nya värdar läggs automatiskt till. Om en värds identitet ändras varnar ssh och inaktiverar lösenordsautentisering för att motverka spoofing/”man-in-the-middle”. StrictHostKeyChecking styr inloggningar när värdnyckel är okänd eller ändrad.

När identiteten accepterats kör servern angivet kommando eller ger användaren ett normalt skal. All kommunikation är krypterad.

Om en pseudo-terminal allokerats (normal inloggning) kan användaren använda escape-tecken (se nedan). Om ingen pseudo-tty allokerats är sessionen transparent och kan användas för binär data. Att sätta escape-tecknet till none gör sessionen transparent även med tty.

Sessionen avslutas när fjärrkommando/skalet avslutas och alla X11- och TCP-anslutningar har stängts.

ESCAPE-TECKEN

När en pseudo-terminal begärts stödjer ssh flera funktioner via ett escape-tecken.

Ett enda tilde-tecken kan skickas som ~~ eller genom att följa tilde med ett annat tecken än de som beskrivs nedan. Escape-tecknet måste alltid följa en newline för att tolkas som special. Escape-tecknet kan ändras med EscapeChar i konfigurationsfilen eller via -e.

Stödda escapes (med standard ”~”):

~.    Koppla från.
~^Z   Lägg ssh i bakgrunden.
~#    Lista vidarebefordrade anslutningar.
~&    Lägg ssh i bakgrunden vid utloggning när ssh väntar på att vidarebefordrade anslutningar/X11-sessioner ska avslutas.
~?    Visa lista över escape-tecken.
~B    Skicka BREAK till fjärrsystemet (endast protokoll 2 om motparten stöder det).
~C    Öppna kommandorad (lägga till/cancel portvidarebefordran, m.m.).
~R    Begär omnyckling (rekey) av anslutningen (endast protokoll 2 om motparten stöder det).

TCP-VIDAREBEFORDRAN

Vidarebefordran av godtyckliga TCP-anslutningar över den säkra kanalen kan anges på kommandoraden eller i en konfigurationsfil. Ett exempel är en säker anslutning till en e‑postserver; ett annat är att passera brandväggar.

Exempel: tunnla en IRC-session från klienten 127.0.0.1 (localhost) till fjärrservern server.example.com:

$ ssh -f -L 1234:localhost:6667 server.example.com sleep 10
$ irc -c '#users' -p 1234 pinky 127.0.0.1

Detta tunnlar en anslutning till IRC-servern, går in i kanalen #users, smeknamn pinky, via port 1234. Porten spelar ingen roll så länge den är >1023 och inte krockar med andra portar. Anslutningen vidarebefordras till port 6667 på fjärrservern (standard för IRC). -f lägger ssh i bakgrunden och fjärrkommandot sleep 10 ger tid att starta tjänsten. Om inga anslutningar sker inom tidsgränsen avslutar ssh.

X11-VIDAREBEFORDRAN

Om ForwardX11 är yes (eller via -X', -x, -Y) och användaren använder X11 (DISPLAY är satt), vidarebefordras X11-anslutningen till fjärrsidan så att program som startas på fjärrskalet går via den krypterade kanalen. Användaren ska normalt inte sätta DISPLAY manuellt.

DISPLAY-värdet som sätts av ssh pekar på servermaskinen men med ett displaynummer större än noll; detta är normalt och beror på att ssh skapar en ”proxy”-X-server på servern. ssh sätter också upp Xauthority-data genom att skapa en slumpmässig cookie och verifiera vidarebefordrade anslutningar; den riktiga cookien skickas aldrig i klartext.

Om ForwardAgent är yes (eller via -A/-a) och användaren använder en agent, vidarebefordras agentanslutningen till fjärrsidan.

VERIFIERA VÄRDNYCKLAR

När man ansluter till en server första gången visas ett fingeravtryck av serverns publika nyckel (om inte StrictHostKeyChecking är avstängt). Fingeravtryck kan tas fram med ssh-keygen(1), t.ex.:

$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Det finns även stöd för visuell jämförelse av värdnycklar via ”random art”. Sätt VisualHostKey till yes för att få en liten ASCII-grafik vid varje inloggning. Mönstret är inte unikt, men ger en sannolikhetsindikator.

För att lista fingeravtryck och random art för alla kända värdar:

$ ssh-keygen -lv -f ~/.ssh/known_hosts

Alternativt kan SSHFP-poster i DNS användas för att verifiera fingeravtryck (se VerifyHostKeyDNS i ssh_config(5)). Exempel på generering:

$ ssh-keygen -r host.example.com.

Kontrollera zonen:

$ dig -t SSHFP host.example.com

Anslut med fråga:

$ ssh -o "VerifyHostKeyDNS ask" host.example.com

SSH-BASERADE VPN

ssh kan tunnla VPN-trafik via tun(4). Serverns PermitTunnel i sshd_config(5) styr om och på vilken nivå (lager 2 eller 3) detta stöds.

Exempel: koppla klientnätet 10.0.50.0/24 med fjärrnätet 10.0.99.0/24 via en punkt-till-punkt-länk (förutsatt att SSH-servern på gateway 192.168.1.15 tillåter det).

På klienten:

# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2

På servern:

# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1

Klientåtkomst kan finjusteras via /root/.ssh/authorized_keys och serverns PermitRootLogin. Exempel (för ”forced-commands-only”):

tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john

Eftersom SSH-baserad VPN har en del overhead passar den ofta bättre för temporära upplägg (t.ex. trådlösa VPN). Mer permanenta VPN-lösningar kan göras med verktyg som ipsecctl(8) och isakmpd(8).

MILJÖ

ssh sätter normalt följande miljövariabler:

DISPLAY

     Anger platsen för X11-servern. Sätts automatiskt av ssh till formen hostname:n där hostname är värden där skalet kör och n är ett heltal ≥ 1. Detta specialvärde används för X11-vidarebefordran. Användaren bör normalt inte sätta DISPLAY manuellt, eftersom det gör X11-anslutningen osäker och kräver manuell hantering av auktorisationscookies.

HOME

     Sätts till sökvägen för användarens hemkatalog.

LOGNAME

     Synonym för USER; för kompatibilitet.

MAIL

     Sätts till sökvägen för användarens brevlåda.

PATH

     Sätts till standard-PATH enligt kompilering av ssh.

SSH_ASKPASS

     Om ssh behöver en lösenfras läser den från terminalen om den körs i terminal. Om ingen terminal finns men DISPLAY och SSH_ASKPASS är satta, körs programmet i SSH_ASKPASS och ett X11-fönster används för inmatning. Detta är användbart t.ex. från .xsession. (Ibland behöver stdin omdirigeras från /dev/null.)

SSH_AUTH_SOCK

     Anger sökvägen till en UNIX-domänsocket för agentkommunikation.

SSH_CONNECTION

     Fyra mellanslagsseparerade värden: klient-IP, klientport, server-IP, serverport.

SSH_ORIGINAL_COMMAND

     Innehåller ursprunglig kommandorad när ett ”forced command” körs.

SSH_TTY

     Namnet på tty-enheten associerad med aktuellt skal/kommando (inte satt om ingen tty).

TZ

     Anger aktuell tidszon om den var satt när demonen startades (värdet förs vidare till nya anslutningar).

USER

     Namnet på användaren som loggar in.

Dessutom läser ssh ~/.ssh/environment och lägger till rader av formen VARNAME=value om filen finns och om användare tillåts ändra sin miljö. Se PermitUserEnvironment i sshd_config(5).

SSH_USE_STRONG_RNG

     Normalt omseedas OpenSSL:s slumptalsgenerator från /dev/urandom. Om miljövariabeln är satt till annat än 0 omseedas den från /dev/random. Antalet byte definieras av värdet (minst 6). Detta rekommenderas inte på datorer utan hårdvarubaserad slumpgenerator eftersom otillräcklig entropi kan blockera anslutningen tills entropi finns.

FILER

~/.rhosts

     Används för värdbaserad autentisering. På vissa system kan den behöva vara världsläsbar om hemkatalogen ligger på NFS, eftersom sshd(8) läser den som root. Filen måste ägas av användaren och får inte vara skrivbar för andra. Rekommenderad behörighet: läs/skriv för användaren, inte åtkomlig för andra.

~/.shosts

     Används som .rhosts men tillåter värdbaserad autentisering utan att tillåta rlogin/rsh.

~/.ssh/

     Standardkatalog för användarspecifik konfiguration och autentiseringsinformation. Inget generellt krav att allt hålls hemligt, men rekommenderade rättigheter: läs/skriv/utför för användaren, ej åtkomlig för andra.

~/.ssh/authorized_keys

     Lista över publika nycklar (RSA/DSA) som får logga in som användaren. Format beskrivs i sshd(8). Inte särskilt känslig, men rekommenderad behörighet: läs/skriv för användaren, ej åtkomlig för andra.

~/.ssh/config

     Per-användare-konfigurationsfil. På grund av missbrukspotential måste filen ha strikta rättigheter: läs/skriv för användaren, ej åtkomlig för andra.

~/.ssh/environment

     Extra definitioner av miljövariabler; se MILJÖ ovan.

~/.ssh/identity, ~/.ssh/id_dsa, ~/.ssh/id_rsa

     Privata nycklar. Känsliga data: ska vara läsbara av användaren men ej åtkomliga för andra (läs/skriv). ssh ignorerar en privat nyckelfil som är åtkomlig för andra. Nyckeln kan krypteras med en lösenfras (3DES).

~/.ssh/identity.pub, ~/.ssh/id_dsa.pub, ~/.ssh/id_rsa.pub

     Publika nycklar. Inte känsliga; kan vara läsbara för alla.

~/.ssh/known_hosts

     Lista över värdnycklar för värdar som användaren loggat in på och som inte redan finns i systemlistan. Se sshd(8) för format.

~/.ssh/rc

     Kommandon körs av ssh vid inloggning, precis före användarens skal (eller kommando) startas. Se sshd(8).

/etc/hosts.equiv

     För värdbaserad autentisering. Ska endast vara skrivbar av root.

/etc/ssh/shosts.equiv

     Som hosts.equiv, men utan att tillåta rlogin/rsh.

/etc/ssh/ssh_config

     Systemomfattande konfigurationsfil. Se ssh_config(5).

/etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_rsa_key

     Innehåller privata delar av värdnycklar. För protokoll 1 måste ssh vara setuid root eftersom värdnyckeln är läsbar endast för root. För protokoll 2 används ssh-keysign(8) för åtkomst, vilket eliminerar kravet att ssh är setuid root vid värdbaserad autentisering. Som standard är ssh inte setuid root.

/etc/ssh/ssh_known_hosts

     Systemomfattande lista över kända värdnycklar. Ska vara förberedd av administratören och vara världsläsbar. Se sshd(8).

/etc/ssh/sshrc

     Kommandon körs vid inloggning, precis före skal/kommando. Se sshd(8).

IPV6

IPv6-adresser kan användas överallt där IPv4-adresser används. I alla poster måste IPv6-adressen vara innesluten i hakparenteser. Obs: hakparenteser är metatecken för skalet och måste escap:as i skal.

SE ÄVEN

scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh-keyscan(1), tun(4), hosts.equiv(5), ssh_config(5), ssh-keysign(8), sshd(8)

RFC: 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4335, 4344, 4345, 4419, 4716.

FÖRFATTARE

OpenSSH är en vidareutveckling av den ursprungliga fria ssh 1.2.12-utgåvan av Tatu Ylönen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt och Dug Song åtgärdade många buggar, återinförde nya funktioner och skapade OpenSSH. Markus Friedl bidrog med stöd för SSH-protokollversionerna 1.5 och 2.0.