Android

Brug af ssh-konfigurationsfilen

Configure Port Forwarding to Remotely Access Your Synology NAS | Synology

Configure Port Forwarding to Remotely Access Your Synology NAS | Synology

Indholdsfortegnelse:

Anonim

En mulighed ville være at oprette et bash alias til hver ekstern serverforbindelse. Der er dog en anden, meget bedre og enklere løsning på dette problem. OpenSSH giver dig mulighed for at konfigurere en konfigurationsfil per bruger, hvor du kan gemme forskellige SSH-indstillinger for hver fjernmaskine, du opretter forbindelse til.

Denne vejledning dækker det grundlæggende i SSH-klientkonfigurationsfilen og forklarer nogle af de mest almindelige konfigurationsindstillinger.

Forudsætninger

Vi antager, at du bruger et Linux eller et macOS-system med OpenSSH-klient installeret.

SSH Config File Location

OpenSSH-konfigurationsfil på klientsiden kaldes config , og den gemmes i .ssh bibliotek under brugerens hjemmekatalog.

~/.ssh oprettes automatisk, når brugeren kører ssh kommandoen for første gang. Hvis biblioteket ikke findes på dit system, skal du oprette det ved hjælp af kommandoen herunder:

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

Som standard findes SSH-konfigurationsfilen muligvis ikke, så du skal muligvis oprette den ved hjælp af berørings-kommandoen:

touch ~/.ssh/config

Denne fil skal kun kunne læses og skrives af brugeren og ikke være tilgængelig af andre:

chmod 600 ~/.ssh/config

SSH Config filstruktur og mønstre

SSH Config-filen har følgende struktur:

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

Indholdet af SSH-klientkonfigurationsfilen er organiseret i strofer (sektioner). Hver strofe starter med Host direktivet og indeholder specifikke SSH-indstillinger, der bruges, når der oprettes en forbindelse til den eksterne SSH-server.

Indrykning er ikke påkrævet, men anbefales, da det gør filen lettere at læse.

Host kan indeholde et mønster eller en hvidafstandsskilt liste over mønstre. Hvert mønster kan indeholde nul eller flere tegn, der ikke er hvidt, eller en af ​​følgende mønsterspecifikationer:

  • * - Det matcher nul eller flere tegn. For eksempel matcher Host * alle værter, mens 192.168.0.* Matcher værter i undernettet 192.168.0.0/24 . ? - Det matcher nøjagtigt en karakter. Mønsteret, Host 10.10.0.? matcher alle værter i 10.10.0. rækkevidde. ! - Når det bruges i starten af ​​et mønster, bortfalder det kampen. For eksempel Host 10.10.0.* !10.10.0.5 enhver host i undernettet 10.10.0.5 undtagen 10.10.0.5 .

SSH-klienten læser konfigurationsfil-strofen efter strofen, og hvis mere end et mønster stemmer overens, har indstillingerne fra den første matchende strofe forrang. Derfor skal der gives mere værtsspecifikke erklæringer i begyndelsen af ​​filen, og mere generelle tilsidesættelser i slutningen af ​​filen.

Du kan finde en komplet liste over tilgængelige ssh-indstillinger ved at skrive man ssh_config i din terminal eller ved at besøge ssh_config-man-siden.

SSH-konfigurationsfilen læses også af andre programmer såsom scp , sftp og rsync .

SSH-konfigurationsfileksempel

Nu hvor vi har dækket det grundlæggende i SSH-konfigurationsfilen, lad os se på følgende eksempel.

Når du opretter forbindelse til en ekstern server via SSH, vil du typisk angive fjernbrugernavnet, værtsnavnet og porten. For eksempel at logge ind som en bruger, der hedder john til en vært, der hedder dev.example.com på port 2322 fra kommandolinjen, skriver du:

ssh [email protected] -p 2322

For at oprette forbindelse til serveren ved hjælp af de samme indstillinger som angivet i kommandoen ovenfor ved blot at skrive ssh dev , skal du sætte 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 , læser ssh-klienten konfigurationsfilen og bruger de forbindelsesdetaljer, der er specificeret til dev værten:

ssh dev

Delt SSH-konfigurationsfileksempel

Dette eksempel giver mere detaljerede oplysninger om værtsmønstre og indstillingspræference.

Lad os tage 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 , læser ssh-klienten filen og anvender indstillingerne fra det første match, som er Host targaryen . Derefter kontrollerer det de næste strofer en efter en for et matchende mønster. Den næste matchende er Host * !martell (hvilket betyder alle værter undtagen martell ), og det vil anvende forbindelsesindstillingen fra denne strofe. Den sidste definition Host * matcher også, men ssh-klienten tager kun Compression , fordi User allerede er defineret i Host targaryen .

    Den fulde liste over de anvendte indstillinger, 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 kører ssh tyrell de matchende ssh tyrell : Host tyrell , Host *ell , Host * !martell og Host * . De indstillinger, der bruges i dette tilfælde, er:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    For alle andre forbindelser bruger ssh-klienten de indstillinger, der er specificeret i sektionen Host * !martell og Host * .

Overstyre SSH Config File Option

Ssh-klienten læser sin konfiguration i følgende præferenceordre:

  1. Indstillinger specificeret fra kommandolinjen. Valg defineret i ~/.ssh/config Valg defineret i /etc/ssh/ssh_config .

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

og du vil bruge alle andre indstillinger, men til at oprette forbindelse som brugerrot i stedet for john blot specificere brugeren på kommandolinjen:

ssh -o "User=root" dev

Funktionen -F ( configfile ) giver dig mulighed for at specificere en alternativ konfigurationsfil per bruger.

For at bede ssh klienten om at ignorere alle de indstillinger, der er specificeret i ssh-konfigurationsfilen, skal du bruge:

ssh -F /dev/null [email protected]

Konklusion

Vi har vist dig, hvordan du konfigurerer din user ssh-konfigurationsfil. Du ønsker måske også at konfigurere en SSH-nøglebaseret godkendelse og oprette forbindelse til dine Linux-servere uden at indtaste et kodeord.

Som standard lytter SSH på port 22. Ændring af standard SSH-port tilføjer et ekstra lag af sikkerhed til din server ved at reducere risikoen for automatiske angreb.

ssh terminal