Linux-kommandoer og Shell-færdigheder
ssh: Det er forbindelsen, der driver din infrastruktur
ssh er ikke en bekvemmelighed, det er den transport, hver operation på hver server kører på, og ~/.ssh/config er en kontrakt med dit fremtidige jeg kl. 03:00. Tunneler (-L, -R, -D) og ControlMaster-multipleksing er det, der gør 'en skal' til en infrastruktur-kommandooverflade, og begge er konfigurationsfilarbejde, ikke hukommelsesarbejde.
Vigtige pointer
- Sæt alt i ~/.ssh/config: Værtsaliaser med User, IdentityFile, IdentitiesOnly yes og ProxyJump gør 'ssh prod-web1' til ét ord; en flagsætning, der er skrevet identisk fem gange om dagen, er en manglende konfigurationsindgang.
- Nøgler er det eneste spil: ssh-keygen -t ed25519 -C 'role@team', offentlig halvdel til authorized_keys og PasswordAuthentication no på serveren, når rotation faktisk er bevist at fungere.
- Jump-værter kollapsede til ét flag: ssh -J bastion.corp internal-host, eller ProxyJump bastion.corp i værtsblokken; de gamle ProxyCommand besværgelser virker stadig og er ikke længere nogens job.
- Tunneler er til formål: -L 5432:db.internal:5432 for at nå en database, -D 1080 som et SOCKS shim gennem et strengt netværk, -R for at afsløre en lokal dev-boks, hver bundet til localhost, medmindre du eksplicit udvider den.
- ControlMaster-multipleksing (ControlMaster auto, ControlPath ~/.ssh/cm-%r@%h:%p, ControlPersist 10m) stopper genkørende håndtryk på hver åbent og får flere vinduer til at arbejde på ét værtsøjeblik.
- Keepalives holder sessioner gennem NAT og inaktive firewall-drop: ServerAliveInterval 60 plus ServerAliveCountMax 3 klient-side beats mystiske 'session døde på 4 minutter'-rapporter det meste af tiden.
- Begræns farlig adgang: -N (ingen fjernkommando) for ren port forwards, -n for batchjobs, der læser fra stdin, og fail2ban plus fornuftige MaxAuthTries, så brute force dør i logfilerne i stedet for konti.
- Fejlretningsrækkefølgen har betydning: ssh -vvv afslører config-parsing, godkendelsesforhandling og kanalfejl i den rækkefølge, og en -G-værtsdump svarer "hvorfor valgte den den nøgle og den bruger" uden at røre en server.
Note fra marken
Jeg deaktiverede engang PasswordAuthentication, før den nye nøgle faktisk var i authorized_keys og låste mit eget team ude for en aften. Ritualet nu: anden session åben, nøglen har vist sig at fungere, og ServerAliveInterval i konfigurationen, så inaktive bastion NAT-dråber stopper med at dræbe sessioner.
Ofte stillede spørgsmål
I en sætning hver: -L, -R, -D?
-L fører en lokal port frem mod en fjerntjeneste, -R skubber en fjernport tilbage mod din maskine (ved præcis, hvad du har eksponeret), og -D åbner en dynamisk SOCKS proxy gennem forbindelsen.
Min session falder efter et par inaktive minutter. Lave?
En inaktiv timeout på en NAT eller firewall er den sædvanlige årsag: sæt ServerAliveInterval på klienten (og hold TCPKeepAlive i orden på serveren); den samme rettelse hører hjemme i den config, du bruger til bastion-hop i kælderen.
ssh-agent eller nøgler uden adgangssætning?
Agent, altid: den indeholder dekrypterede nøgler pr. session, så nøgler bevarer adgangssætninger, og automatisering forbliver ikke-interaktiv; ForwardAgent ja på en betroet bastion er fint, og ssh-add -l fortæller dig, hvad der er indlæst, før du lyver for dig selv.
Hvordan stopper jeg med at genindtaste tunnelspecifikationer?
LocalForward og RemoteForward linjer inde i værtsblokke: 'ssh dbtunnel' gør så det hele; én indtastning pr. formål holder filen læsbar og lader revisioner se præcis, hvem der videresender hvad.
Sådan hjælper Kinetikatech med linux-kommandoer og shell-færdigheder
Det har vi gjort hundredvis af gange: De kommandoer og scriptvaner, der afgør, om en administrator driver en server eller bekæmper den: søg, transformer, overfør og overvåg tekst og processer med de værktøjer, der findes i enhver basisinstallation. Med Sikkerhed på Linux-servere og Serveradministration får du hele løkken: vi vurderer, implementerer, følger op hele døgnet og rykker ud inden for 30 minutter, når det er nødvendigt.