SSH

Oversættelse(r): Deutsch – English – Franrius – Italiano – Espa Kurtol – Portuguese Kriss Brasileiro

ToDo: Flet (og oversæt) denne side og den franske (mere komplet)

introduktion

SSH står for Secure Shell og er en protokol til sikker fjernlogin og andre sikre netværkstjenester over et usikkert netværk1. Se SSH, LSH-client eller dropbear for SSH-programmel implementeringer, hvoraf OpenSSH er den mest populære og mest udbredte 2. SSH erstatter det ukrypterede telnet, rlogin og rsh og tilføjer mange funktioner.

i dette dokument bruger vi kommandopakken OpenSSH, det antages også, at følgende to variabler er defineret:

remote_host=<the remote computer>remote_user=<your user name on $remote_host>

så hvis du vil bruge opskrifterne nedenfor, skal du først indstille disse variabler til navnet på fjerncomputeren og brugernavnet på den eksterne computer. Derefter klippe og indsætte af kommandoerne nedenfor skal arbejde. remote_host kan også være en IP-adresse.

Installation

installation af klienten

normalt er klienten installeret som standard. Hvis ikke er det tilstrækkeligt at køre som rod:

apt install openssh-client

Installation af serveren

serveren gør det muligt at oprette forbindelse eksternt og bliver installeret ved at køre som root:

apt install openssh-server

konfigurationsfiler

de vigtigste konfigurationsfiler er i mappen / etc / ssh :

  • ssh_config: klientkonfigurationsfil

  • sshd_config: serverkonfigurationsfil

derudover indeholder denne mappe de private / offentlige nøglepar, der identificerer din vært :

  • ssh_host_dsa_key
  • ssh_host_dsa_key.pub
  • ssh_host_rsa_key
  • ssh_host_rsa_key.pub

siden OpenSSH 5.73 er et nyt privat/offentligt nøglepar tilgængeligt:

  • ssh_host_ecdsa_key
  • ssh_host_ecdsa_key.pub

siden OpenSSH 6.54 er et nyt privat/offentligt nøglepar tilgængeligt:

  • ssh_host_ed25519_key
  • ssh_host_ed25519_key.pub

regenererende værtsnøgler

rm /etc/ssh/ssh_host_*dpkg-reconfigure openssh-server

Fjern login

med adgangskode

hvis du vil logge ind på $remote_host som bruger $remote_user skal du blot skrive

ssh $remote_user@$remote_host

og derefter indtaste din adgangskode.

hvis brugernavnene på den lokale og fjerncomputeren er identiske, kan du slippe $remote_user@-part og blot skrive

ssh $remote_host

hvis dette er første gang du logger ind på fjerncomputeren, spørger ssh dig, om du er sikker på, at du vil oprette forbindelse til fjerncomputeren. Svar ‘ Ja ‘ Når du har bekræftet fjerncomputerens fingeraftryk, skal du indtaste din adgangskode, og ssh forbinder dig til fjernværten.

brug af delte nøgler

en af funktionerne i ssh bruger et par private/offentlige nøgler til at oprette forbindelse til en ekstern vært. Også kendt som SSH nøgler. Denne metode giver dig mulighed for at logge ind på en ekstern vært uden at skrive din adgangskode hver gang. For at gøre dette skal du generere et par private/offentlige nøgler på din lokale maskine og deponere den offentlige nøgle på den eksterne vært.

for at generere nøglen skal du bruge programmet ssh-keygen som følger

ssh-keygen -t rsa

dette program genererer et par private/offentlige nøgler i mappen ~/.ssh. Programmet beder først om destinationsfilerne for tasterne, som standard placeret i ~/.ssh. Derefter anmodes der om en adgangskode.

Bemærk: Vi anbefaler ikke at lade adgangssætningen være tom. En angriber, der får fat i din private nøgle, kan ellers oprette forbindelse til værterne, hvor du har deponeret din offentlige nøgle, da adgangssætningen er tom. Vælg en lang og kompleks adgangskode.

din private nøgle er id_rsa (giv den ikke til en anden), din offentlige nøgle er id_rsa.pub.

du kopierer din offentlige nøgle til en fjernvært med kommandoen ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub $remote_user@$remote_host

nu Kan du blot oprette forbindelse til fjernværten, og passfasen bliver bedt om. Når du er færdig, får du forbindelse til fjernværten. I tilfælde af en ny forbindelse bliver adgangssætningen ikke bedt om igen under hele din session.

Keys management

brug af GUI

eventuelt er seahorse et GNOME-program, der nemt administrerer krypteringsnøgler og adgangskoder gennem en intuitiv grafisk brugergrænseflade (GUI). Seahorse er i stand til at udføre forskellige operationer. Såsom oprette SSH eller PGP nøgler, konfigurere dem, og cache dem. Læs mere.

sikring

SSH-Server

som standard er en SSH-server relativt sikker. Ved hjælp af nogle gode fremgangsmåder, konfigurationsmuligheder og eksterne hjælpeprogrammer er det muligt at gøre det endnu sværere for ‘robotter’ og crackere

god praksis med SSH-Server

  • /!\ Anvend OpenSSH-server sikkerhedsopdateringer så hurtigt som muligt. Hvilket gør det muligt at beskytte mod kendte sikkerhedshuller.

  • aktiver SSH nøgler godkendelse kun med adgangskoder / passphrases. Deaktiver kun godkendelse af adgangskode.

  • overvej at bruge fail2ban, som er en logfilmonitor, der automatisk forbyder en IP-adresse efter et foruddefineret antal mislykkede loginforsøg. Som automatisk beskytter mod brute-force angreb.

  • flere gode fremgangsmåder til brug af ssh på https://lackof.org/taggart/hacking/ssh/

konfigurationsindstillinger

(!) man skal redigere filen / etc / ssh / sshd_config for at ændre parametrene og derefter genstarte ssh-serveren med

service ssh restart
  • Deaktiver brug af adgangskoder til godkendelse (adgangskodegodkendelse nr.).

  • Deaktiver ved hjælp af rodkontoen (PermitRootLogin no).

  • Tillad kun login af bestemte brugere eller grupper (Tillad brugere og Tillad grupper)

{i} indstillingerne tillader detBrugere og Tilladegrupper forbedrer ikke sikkerheden på en SSH-server. Men i visse tilfælde tillader deres brug at modstå et brute force angreb lidt længere.

eksterne hjælpeprogrammer

  • fail2ban: gør det muligt at automatisk sortliste IP ‘ er forsøger at brute tvinge en SSH-server ved hjælp af iptables.

  • denyhosts : som fail2ban, denyhosts gør det muligt at blokere IP-adresser forsøger at brute tvinge en forbindelse til ssh. Men i modsætning til fail2ban bruger den ikke iptables, men filen /etc/hosts.nægte.

SSH klient

god praksis med SSH klient

  • /!\ Anvend OpenSSH-client sikkerhedsopdateringer så hurtigt som muligt. Hvilket gør det muligt at beskytte mod kendte sikkerhedshuller.

  • brug SSH nøgler godkendelse. I stedet for adgangskode godkendelse.

  • Tilføj stærke adgangskoder / adgangssætninger til dine SSH-nøgler. Dette reducerer risikoen for brute-force angreb.

yderligere funktioner

se filer i GUI

i filadministratorer som Conceror, Dolphin, Krusader og Midnight Commander kan du bruge fisk til at se filer i en GUI ved hjælp af:

fish://username@server_name_or_ip

yderligere kommandoer

scp

scp er et kommandolinjeværktøj, der gør det muligt at overføre filer mellem to maskiner.

  • afsendelse af en fil:
scp $source_file $remote_user@$remote_host:$destination_file
  • kopiering af en fil til den lokale maskine:
scp $remote_user@$remote_host:$source_file $destination_file

SFTP

teksttilstand

grafisk tilstand

clustersh

ssh-agent og ssh-add

ssh-agent er et nyttigt værktøj til at styre private nøgler og deres adgangssætninger. De fleste skrivebordsmiljøer i Debian vil allerede være indstillet til at køre ssh-agent (via systemd-brugertjenester eller /etc/11/session), så du behøver ikke at starte det manuelt.

# Check if ssh-agent is runningenv | grep -i ssh

du skal stadig bede agenten om at administrere dine nøgler.

# List keys managed by the agentssh-add -l# Add your ssh keyssh-add ~/.ssh/your_private_key

når en privat nøgle først er nødvendig, bliver du bedt om dens adgangssætning. ssh-agent vil derefter huske nøglen, så din adgangskode ikke bliver spurgt længere.

nøglering

nøglering, leveret af pakken nøglering, er et shell-script, der giver mulighed for at bruge ssh-agenten i flere sessioner på den samme computer. I kraft efter den første start ssh-agent skaber en permanent sokkel tillader kommunikation med ssh. Denne stikkontakt henvises kun til miljøet i den session, hvor agenten blev startet. Nøglering gør det muligt at opdage agenten og udbrede adgangen til denne agent til andre sessioner; dette gør det muligt at bruge en enkelt forekomst af ssh-agent per bruger på en maskine.

ssh-askpass

ssh-askpass er et værktøj til blot spørgsmålet om adgangskoden til en privat nøgle, når du bruger den. Der findes flere implementeringer:

  • 11-SSH-askpass: version til 11

  • kaskpass: integration af ssh-askpass i KDE-miljøet

  • SSH-askpass-gnome : integration af ssh-askpass i Gnome-miljøet

libpam-usb

libpam-usb er et værktøj (kun tilgængeligt op til Debian Jessie), der tillader godkendelse med en USB-stick. Denne pakke indeholder et nyttigt værktøj: pamusb-agent. Dette værktøj, når det er korrekt konfigureret, gør det muligt at indlæse SSH-tasterne, der findes på USB-sticken, når den er tilsluttet, og at aflæse dem, når den er afbrudt.

fjernkommandoer

hvis du bare vil køre en kommando på fjerncomputeren, behøver du ikke logge ind. Du kan fortælle ssh at køre kommandoen uden login, for eksempel,

ssh $remote_user@$remote_host 'ls *.txt'

viser alle filer med udvidelse .på fjerncomputeren. Dette fungerer med enkelt kryds citater’…’som vist her, med dobbelt tick citater”…”og uden citater. Der kan være forskelle mellem disse tre sager, selvom, endnu ikke dokumenteret her.

SSH til Debian fra et andet operativsystem

  • PuTTY er en terminal emulator ansøgning, der kan fungere som en klient til ssh. Det er meget udbredt af vinduer brugere.

  • har Comparison_of_SSH_clients

god praksis for SSH-brug

du skal læse dette: https://lackof.org/taggart/hacking/ssh/

dette dokument opsummerer mange gode fremgangsmåder, som almindelige SSH-brugere skal følge for at undgå at gå på kompromis med sikkerheden på deres konti (og for hele maskinen på samme tid).

Konfigurer din ~/.SSH / config at sende kun den rigtige nøgle.

Host master.debian.org User account IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

fejlfinding

OpenSSL version mismatch. Bygget mod 1000105f, har du 10001060

hvis du får en fejlmeddelelse som denne, når du starter ssh-dæmonen, skal du køre:

apt install openssh-server openssh-client

se også fejl #732940.

SSH hænger

problem

du forsøger at SSH ind i en fjerncomputer. Men under SSH-login hænger/fryser sessionen på ubestemt tid. Således er du ikke præsenteret med kommandoprompten. Og du kan ikke bruge nogen SSH-kommandoer : ( når du bruger SSH debug-tilstand, hænger sessionen på denne linje debug2: channel 0: åbn Bekræft rvindue 0 rmaks 32768

Mulig årsag

med nogle routere bag NAT og ved brug af OpenSSH. Under sessionsopsætningen, efter at adgangskoden er givet, indstiller OpenSSH feltet TOS (type service) i IP-datagrammet. Routeren choker på dette. Effekten er, at din SSH-session hænger på ubestemt tid. Med andre ord fungerer SSH-kommandoer eller forbindelser sjældent eller fungerer slet ikke.

opløsning med Ipkos 0h00

indtil din routerproducent reparerer deres program. Her er en mulighed for at løse dette problem:

  1. dobbelttjek din OpenSSH-server og OpenSSH-klient version er 5,7 eller nyere. For eksempel skal opløsningen nedenfor arbejde med Debian 7.11 hvæsende eller nyere, da den kommer med OpenSSH version 6.0.

  2. Rediger en af følgende to filer placeret på:

    ~/.ssh/config

    eller

    /etc/ssh/ssh_config

    Bemærk: konfigurationsfilen er pr.bruger, og ssh_config-filen er for alle brugere og hele systemet. Hvis du er usikker, skal du redigere den relevante brugerkonfigurationsfil.

    filindhold før

    Host *

    filindhold efter

    Host * IPQoS 0x00
  3. hvis du allerede har et Terminal/konsolvindue(r) åbent. Fuldt lukke dem alle. Hvis du gør det, lukkes alle aktive SSH-sessioner.
  4. ingen grund til at genstarte OpenSSH eller din Debian. Prøv igen at SSH ind i enhver ekstern server. Det burde virke. Udført du har med succes løst dette problem :)

    tak til Joe og catmaker for dette tip :)

    relateret dokumentation på https://www.openssh.com/txt/release-5.7

opløsning med netcat

/!\ advarsel: Det foreslås at overveje at bruge den anden opløsning med Ipkos 0h00 i stedet for at bruge netcat/fuldmægtig NC %h %p mulighed. Fordi Ipkos 0h00 er den officielle indbyggede OpenSSH mulighed. IPOs 0h00 er også en mere direkte måde at løse dette problem på, og potentielt mere sikker løsning. Fordi Ipkos 0h00 bruger SSH ‘ s indbyggede kryptering til sikre overførsler. Sammenlign med netcats ikke krypterede overførsler. Kilder: 1 2. Hvis du vælger at bruge netcat / fuldmægtig NC %h %P option læs videre.

en anden mulighed for at løse problemet med SSH hænger er at bruge fuldmagt nc %h %p. For at gøre det skal du følge de samme trin som ovenstående opløsning med Ipkos 0h00. Men udskift Ipkos 0h00 med

ProxyCommand nc %h %p

hold SSH-forbindelsen i live

af sikkerhedsmæssige årsager lukkes som standard en SSH-forbindelse automatisk efter en bestemt tidsperiode. Men i nogle tilfælde vil du holde forbindelsen åben. Såsom cloud storage over SSH-forbindelse.

/!\ advarsel: før aktivering, der holder SSH forbindelse i live mulighed. Det anbefales at overveje at sikre både din SSH-klient og SSH-Server. Fordi der for eksempel er en risiko for, at hvis dine brugere forlader deres SSH-session åben, og deres computer uden opsyn og ulåst. Enhver kan nærme sig den computer og derefter udnytte den åbne SSH-forbindelse. For eksempel ved at bruge kommandoen adgangskode og ændre adgangskoden. Og dermed få adgang til serveren. Med andre ord, før du aktiverer denne keep SSH connection alive-indstilling, anbefales det at bruge din bedste vurdering og god sikkerhedspraksis.

For Debian 7.

trin til at holde SSH-forbindelse i live.

på SSH server edit /etc/ssh/sshd_config-filen og tilføj følgende nederst i filen.

# Keep client SSH connection alive by sending every 300 seconds a small keep-alive packet to the server in order to use ssh connection. 300 seconds equal 5 minutes.ClientAliveInterval 300 # Disconnect client after 3333 "ClientAlive" requests. Format is (ClientAliveInterval x ClientAliveCountMax). In this example (300 seconds x 3333) = ~999,900 seconds = ~16,665 minutes = ~277 hours = ~11 days.ClientAliveCountMax 3333

som rodbruger genstart SSH-tjenesten:

service sshd restart

Bemærk venligst, at på nyere Debian-systemer (f.eks. hvæsende 7 med aktuelle opdateringer pr. Nov. 2015), fungerer ovenstående kommando ikke længere og returnerer fejlen:

sudo service sshd restartsshd: unrecognized service

men følgende værker:

sudo service ssh restart Restarting OpenBSD Secure Shell server: sshd.

se også

  • skærmterminal multiplekser med VT100 / ANSI terminalemulering

  • alternativ terminalmultiplekser

Kategorinetværkskategoriblødvare

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.