Sådan konfigureres brugerdefinerede SSH-forbindelser til forenkling af fjernadgang


SSH (SSH-klient) er et program til fjernadgang til en maskine, det gør det muligt for en bruger at udføre kommandoer på en ekstern vært. Det er en af de mest anbefalede metoder til at logge på en ekstern vært, da den er designet til at levere sikker krypteret kommunikation mellem to ikke-tillid til værter over et usikkert netværk.

SSH bruger både en systemomfattende såvel som en brugerspecifik (brugerdefineret) konfigurationsfil. I denne vejledning forklarer vi, hvordan du opretter en brugerdefineret ssh-konfigurationsfil og bruger visse muligheder for at oprette forbindelse til eksterne værter.

  1. Du skal have installeret OpenSSH-klient på dit Linux-skrivebord.
  2. Forstå de almindelige muligheder, der bruges til fjernforbindelser via ssh.

Nedenfor er placeringen af ssh-klientens konfigurationsfiler:

  1. /etc/ssh/ssh_config - dette er standardkonfigurationsfilen for hele systemet. Den indeholder indstillinger, der gælder for alle brugere af ssh-klientmaskine.
  2. ~/.ssh/config eller $ HOME/.ssh/config - er den brugerspecifikke/brugerdefinerede konfigurationsfil. Det har konfigurationer, der gælder for en bestemt bruger. Det tilsidesætter derfor standardindstillingerne i den systemdækkende konfigurationsfil. Dette er den fil, vi opretter og bruger.

Som standard er brugere godkendt i ssh ved hjælp af adgangskoder, men du kan konfigurere ssh passwordless login ved hjælp af ssh keygen i 5 enkle trin.

Bemærk: Hvis biblioteket ~/.ssh ikke findes på dit desktop-system, skal du oprette det med følgende tilladelser.

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh   

Ovenstående chmod-kommando indebærer, at kun brugeren kan have læst, skrevet og udført tilladelser til biblioteket som krævet af ssh-indstillinger.

Sådan oprettes brugerspecifik SSH-konfigurationsfil

Denne fil oprettes normalt ikke som standard, så du skal oprette den med læse-/skrivetilladelser til kun brugeren.

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

Ovenstående fil indeholder sektioner defineret af værtsspecifikationer, og et afsnit anvendes kun til værter, der matcher et af de mønstre, der er angivet i specifikationen.

Det konventionelle format for ~/.ssh/config er som følger, og alle tomme linjer såvel som linjer, der starter med '#' betragtes som kommentarer:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

Fra ovenstående format:

  1. Host host1 - er en headerdefinition for host1, det er her en hostspecifikation starter, og den slutter med den næste headerdefinition, Host host2 opretter et afsnit.
  2. vært1, vært2 er simpelthen værtsaliaser, der skal bruges på kommandolinjen, de er ikke de faktiske værtsnavne på fjernværterne.
  3. Konfigurationsindstillingerne såsom ssh_option1 = værdi1, ssh_option2 = værdi1 værdi2 gælder for en matchet vært og skal indrykkes for velorganiseret formatering.
  4. For en indstilling som ssh_option2 = værdi1 værdi2 betragtes værdien værdi1 først og derefter værdi2.
  5. Overskriftsdefinitionen Host * (hvor * er et mønster - jokertegn, der matcher nul eller flere tegn), vil matche nul eller flere værter.

Overvejer stadig formatet ovenfor, sådan læser ssh konfigurationsfilen. Hvis du udfører en ssh-kommando for at få fjernadgang til host1 sådan:

$ ssh host1

Ovenstående ssh-kommando vil gøre følgende:

  1. matche værtsaliaset host1 i konfigurationsfilen og anvende de indstillinger, der er indstillet under definitionsoverskriften, Host host1.
  2. flytter derefter til det næste værtsafsnit, Host host2 og finder ud af, at navnet på kommandolinjen ikke stemmer overens, så der bruges ingen indstillinger herfra.
  3. Det fortsætter til det sidste afsnit, Host *, der matcher alle værter. Her anvender det alle indstillingerne i dette afsnit til værtsforbindelsen. Men det kan ikke tilsidesætte nogen værdier af indstillinger, der allerede blev brugt i det forrige afsnit.
  4. Det samme gælder for host2.

Sådan bruges brugerspecifik SSH-konfigurationsfil

Når du har forstået, hvordan ssh-klientkonfigurationsfilen fungerer, kan du oprette den som følger. Husk at bruge indstillinger og værdier (værtsaliaser, portnumre, brugernavne osv.), Der gælder for dit servermiljø.

Åbn konfigurationsfilen med din yndlingseditor:

$ vi ~/.ssh/config

Og definer de nødvendige sektioner:

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

En detaljeret forklaring af ovenstående ssh-konfigurationsindstillinger.

  1. Værtsnavn - definerer det rigtige værtsnavn, du kan logge på, alternativt kan du bruge en numerisk IP-adresse, det er også tilladt (både på kommandolinjen og i værtsnavnsspecifikationer).
  2. Bruger - angiver, at brugeren skal logge ind som.
  3. Port - indstiller det portnummer, der skal oprettes forbindelse til fjernværten, standard er 22. Brug det portnummer, der er konfigureret i fjernhostens sshd-konfigurationsfil.
  4. Protokol - denne indstilling definerer protokolversioner, som ssh skal understøtte i præference rækkefølge. De sædvanlige værdier er '1' og '2', flere versioner skal adskilles med komma.
  5. IdentityFile - angiver en fil, hvorfra brugerens DSA-, Ed25519-, RSA- eller ECDSA-godkendelsesidentitet læses.
  6. ForwardX11 - definerer, om X11-forbindelser automatisk omdirigeres over den sikre kanal og DISPLAY indstillet. Det har to mulige værdier "ja" eller "nej".
  7. Komprimering - det bruges til at indstille kompression under fjernforbindelsen med "ja" -værdien. Standard er "nej".
  8. ServerAliveInterval - indstiller et timeout-interval i sekunder, hvorefter hvis der ikke er modtaget noget svar (eller data) fra serveren, sender ssh en besked gennem den krypterede kanal for at anmode om et svar fra serveren. Standardværdien er 0, hvilket betyder, at der ikke sendes beskeder til serveren eller 300, hvis BatchMode-indstillingen er defineret.
  9. ServerAliveCountMax - indstiller antallet af server-levende meddelelser, der kan sendes uden, at ssh modtager noget svar fra serveren.
  10. LogLevel - definerer det detaljerede niveau, der bruges, når du logger meddelelser fra ssh. De tilladte værdier inkluderer: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 og DEBUG3. Og standard er INFO.

Standardmetoden til at oprette forbindelse til en hvilken som helst ekstern Linux-vært (CentOS 7 - i mit tilfælde), defineret i afsnit to i konfigurationsfilen ovenfor, skriver vi normalt kommandoen nedenfor:

$ ssh -i ~/.ssh/id_rsa -p 22 [email 

Men med brug af ssh-klientkonfigurationsfilen kan vi blot skrive følgende kommando:

$ ssh centos7 

Du kan finde flere muligheder og brugseksempler på ssh-klientens konfigurationsside:

$man ssh_config

Det er det for nu, i denne vejledning forklarede vi dig, hvordan du bruger en brugerspecifik (brugerdefineret) ssh-klientkonfigurationsfil i Linux. Brug feedbackformularen nedenfor til at skrive tilbage til os angående denne artikel.