Android

Bruke ssh-konfigurasjonsfilen

Kjell-TV - Bygg en 3D-skrivarserver (Hur funkar det?)

Kjell-TV - Bygg en 3D-skrivarserver (Hur funkar det?)

Innholdsfortegnelse:

Anonim

Et alternativ ville være å opprette et bash alias for hver ekstern serverforbindelse. Imidlertid er det en annen, mye bedre og enklere løsning på dette problemet. OpenSSH lar deg konfigurere en konfigurasjonsfil per bruker hvor du kan lagre forskjellige SSH-alternativer for hver eksterne maskin du kobler til.

Denne guiden dekker det grunnleggende i konfigurasjonsfilen for SSH-klienten og forklarer noen av de vanligste konfigurasjonsalternativene.

Forutsetninger

Vi antar at du bruker et Linux- eller macOS-system med OpenSSH-klient installert.

SSH Config File Location

OpenSSH konfigurasjonsfil på klientsiden heter config , og den lagres i .ssh katalogen under brukerens hjemmekatalog.

Katalogen ~/.ssh opprettes automatisk når brukeren kjører ssh kommandoen for første gang. Hvis katalogen ikke finnes på systemet ditt, oppretter du det ved å bruke kommandoen nedenfor:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

Som standard eksisterer kanskje ikke SSH-konfigurasjonsfilen, så du må kanskje opprette den ved hjelp av berøringskommandoen:

touch ~/.ssh/config

Denne filen må være lesbar og skrivbar bare av brukeren, og ikke tilgjengelig for andre:

chmod 600 ~/.ssh/config

SSH Config File Structure and Patterns

SSH-konfigurasjonsfilen har følgende struktur:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

Innholdet i SSH-klientkonfigurasjonsfilen er organisert i strofer (seksjoner). Hver strofe starter med vertsdirektivet og inneholder spesifikke SSH-alternativer som brukes når du oppretter en forbindelse med den eksterne SSH-serveren.

Indikasjon er ikke påkrevd, men anbefales siden den gjør filen enklere å lese.

Vertsdirektivet kan inneholde ett mønster eller en hvit mellomrom-separert liste over mønstre. Hvert mønster kan inneholde null eller flere tegn som ikke er hvit, eller en av følgende mønsterspesifikasjoner:

  • * - Samsvarer med null eller flere tegn. For eksempel samsvarer Host * med alle verter, mens 192.168.0.* Samsvarer med verter i undernettet 192.168.0.0/24 . ? - Samsvarer nøyaktig med en karakter. Mønsteret, Host 10.10.0.? matcher alle verter i 10.10.0. område. ! - Når den brukes i starten av et mønster, negerer det kampen. For eksempel Host 10.10.0.* !10.10.0.5 med hvilken som helst vert i 10.10.0.0/24 unntatt 10.10.0.5 .

SSH-klienten leser konfigurasjonsfilen strofe etter strofe, og hvis mer enn ett mønster stemmer overens, har alternativene fra den første matchende strofen forrang. Derfor bør det gis mer vertsspesifikke erklæringer i begynnelsen av filen, og mer generelle overstyringer på slutten av filen.

Du kan finne en fullstendig liste over tilgjengelige ssh-alternativer ved å skrive man ssh_config i terminalen din eller ved å gå til ssh_config man-siden.

SSH-konfigurasjonsfilen blir også lest av andre programmer som scp , sftp og rsync .

SSH-konfigurasjonsfileksempel

Nå som vi har dekket det grunnleggende for SSH-konfigurasjonsfilen, la oss se på følgende eksempel.

Vanligvis, når du kobler til en ekstern server via SSH, vil du spesifisere det eksterne brukernavnet, vertsnavnet og porten. For å logge inn som en bruker som heter john til en vert kalt dev.example.com på port 2322 fra kommandolinjen, skriver du for eksempel:

ssh [email protected] -p 2322

For å koble til serveren ved å bruke de samme alternativene som gitt i kommandoen over bare ved å skrive ssh dev , setter du følgende linjer til din "~/.ssh/config fil:

~ /.Ssh / config

Host dev HostName dev.example.com User john Port 2322

Når du skriver ssh dev , vil ssh-klienten lese konfigurasjonsfilen og bruke tilkoblingsdetaljene som er spesifisert for dev verten:

ssh dev

Delt SSH-konfigurasjonsfileksempel

Dette eksemplet gir mer detaljert informasjon om vertsmønstrene og alternativets forrang.

La oss ta følgende eksempelfil:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • Når du skriver ssh targaryen , leser ssh-klienten filen og bruker alternativene fra den første kampen, som er Host targaryen . Så sjekker den de neste strofeene en etter en for et samsvarende mønster. Den neste matchende er Host * !martell (som betyr alle verter unntatt martell ), og den vil bruke tilkoblingsalternativet fra denne strofen. Den siste definisjonen Host * også, men ssh-klienten vil bare ta Compression fordi User alternativet allerede er definert i Host targaryen strofe.

    Den fullstendige listen over alternativer som brukes når du skriver ssh targaryen er som følger:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    Når du kjører ssh tyrell de matchende ssh tyrell : Host tyrell , Host *ell , Host * !martell og Host * . Alternativene som brukes i dette tilfellet er:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    For alle andre tilkoblinger vil ssh-klienten bruke alternativene som er spesifisert i Host * !martell og Host * seksjonene.

Overstyr alternativet SSH Config File

Ssh-klienten leser konfigurasjonen i følgende prioritetsrekkefølge:

  1. Alternativer spesifisert fra kommandolinjen. Valg definert i ~/.ssh/config Valg definert i /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

og du vil bruke alle andre alternativer, men å koble til som brukerrot i stedet for john , spesifiser bare brukeren på kommandolinjen:

ssh -o "User=root" dev

Alternativet -F ( configfile ) lar deg spesifisere en alternativ konfigurasjonsfil per bruker.

Hvis du vil be ssh klienten ignorere alle alternativene som er spesifisert i ssh-konfigurasjonsfilen, bruker du:

ssh -F /dev/null [email protected]

Konklusjon

Vi har vist deg hvordan du konfigurerer user ssh-konfigurasjonsfilen. Det kan også være lurt å sette opp en SSH-nøkkelbasert autentisering og koble til Linux-serverne dine uten å oppgi et passord.

Som standard lytter SSH på port 22. Endring av standard SSH-port gir et ekstra lag med sikkerhet til serveren din ved å redusere risikoen for automatiserte angrep.

ssh terminal