Johdanto
OpenSSH on tehokas kokoelma työkaluja verkkotietokoneiden etäohjaukseen ja tiedonsiirtoon niiden välillä. Opit myös joistakin OpenSSH-palvelinsovelluksen mahdollisista asetuksista ja niiden muuttamisesta Ubuntu-järjestelmässäsi.
OpenSSH on vapaasti saatavilla oleva versio Secure Shell (SSH) – protokollaperheestä, joka sisältää työkaluja tiedostojen etäohjaukseen tai siirtämiseen tietokoneiden välillä. Perinteiset työkalut, joita käytetään näiden toimintojen suorittamiseen, kuten telnet tai rcp, ovat epävarmoja ja lähettävät käyttäjän salasanan selätekstinä käytettäessä. OpenSSH tarjoaa palvelindeemonin ja asiakastyökalut, jotka helpottavat suojattuja, salattuja etäohjaus-ja tiedostonsiirtotoimintoja ja korvaavat tehokkaasti Vanhat työkalut.
OpenSSH-palvelinkomponentti sshd kuuntelee jatkuvasti asiakasyhteyksiä mistä tahansa asiakastyökalusta. Kun yhteyspyyntö tapahtuu, sshd määrittää oikean yhteyden riippuen asiakastyökalun tyypistä. Esimerkiksi jos etätietokone muodostaa yhteyden ssh-asiakassovellukseen, OpenSSH-palvelin perustaa etäohjausistunnon todennuksen jälkeen. Jos etäkäyttäjä muodostaa yhteyden OpenSSH-palvelimeen scp: n kanssa, OpenSSH-palvelintoimintaprosessi käynnistää suojatun kopion tiedostoista palvelimen ja asiakkaan välillä todennuksen jälkeen. OpenSSH voi käyttää monia tunnistautumismenetelmiä, kuten tavallista salasanaa, julkista avainta ja Kerberos-lippuja.
asennus
OpenSSH-asiakas-ja palvelinsovellusten asennus on yksinkertaista. Jos haluat asentaa OpenSSH-asiakassovellukset Ubuntu-järjestelmääsi, käytä tätä komentoa päätekehotteessa:
sudo apt install openssh-client
asentaaksesi OpenSSH-palvelinsovelluksen ja siihen liittyvät tukitiedostot, käytä tätä komentoa päätekehotteessa:
sudo apt install openssh-server
kokoonpano
voit määrittää OpenSSH-palvelinsovelluksen oletuskäyttäytymisen, sshd, muokkaamalla tiedostoa /etc/ssh/sshd_config
. Lisätietoja tässä tiedostossa käytetyistä asetusohjeista voit katsoa asianmukaiselta manuaalisivulta, jossa on seuraava päätekehotteessa annettu komento:
man sshd_config
sshd-asetustiedostossa on monia ohjeita, jotka ohjaavat esimerkiksi tietoliikenneasetuksia ja todennustiloja. Seuraavassa on esimerkkejä konfiguraatiodirektiiveistä, joita voidaan muuttaa muokkaamalla /etc/ssh/sshd_config
tiedosto.
Tip
ennen asetustiedoston muokkaamista sinun tulee tehdä kopio alkuperäisestä tiedostosta ja suojata se kirjoitukselta, jotta sinulla on alkuperäiset asetukset referenssinä ja voit käyttää niitä tarvittaessa uudelleen.
Kopioi
/etc/ssh/sshd_config
tiedosto ja suojaa se kirjoittamasta seuraavilla komentoilla, jotka on annettu päätekehotteella:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.originalsudo chmod a-w /etc/ssh/sshd_config.original
Lisäksi koska ssh-palvelimen menettäminen voi tarkoittaa tien menettämistä palvelimelle, tarkista kokoonpano sen vaihtamisen jälkeen ja ennen palvelimen uudelleenkäynnistys:
sudo sshd -t -f /etc/ssh/sshd_config
seuraavat ovat esimerkkejä konfiguraatiodirektiiveistä, joita voit muuttaa:
- Jos haluat asettaa OpenSSH: n kuuntelemaan TCP-porttia 2222 oletusarvoisen TCP-portin 22 sijaan, muuta Porttidirektiiviä sellaisenaan:
portti 2222
- jotta OpenSSH-palvelimesi näyttäisi
/etc/issue.net
tiedoston sisällön kirjautumista edeltävänä bannerina, voit lisätä tai muokata tätä riviä/etc/ssh/sshd_config
tiedosto:
banner /etc/Issue.net
tehtyään muutoksia /etc/ssh/sshd_config
Tiedosto, Tallenna tiedosto ja käynnistä sshd-palvelinsovellus uudelleen muutosten tekemiseksi käyttäen seuraavaa komentoa terminaalipäätteessä:
sudo systemctl restart sshd.service
varoitus
monet muut sshd: n konfigurointiohjeet ovat käytettävissä palvelinsovelluksen käyttäytymisen muuttamiseksi tarpeisiisi sopivaksi. Huomaa kuitenkin, että jos ainoa tapa päästä palvelimelle on ssh, ja teet virheen määrittäessäsi sshd: n
/etc/ssh/sshd_config
– tiedoston kautta, saatat huomata olevasi lukittu palvelimesta uudelleenkäynnistyksen yhteydessä. Lisäksi, jos virheellinen määritysdirektiivi on toimitettu, sshd-palvelin voi kieltäytyä käynnistämästä, joten ole erityisen varovainen muokatessasi tätä tiedostoa etäpalvelimella.
SSH-avaimet
SSH mahdollistavat tunnistautumisen kahden isännän välillä ilman salasanaa. SSH-avaimen todennus käyttää yksityistä avainta ja julkista avainta.
luo avaimet päätekehotteesta enter:
ssh-keygen -t rsa
tämä luo avaimet RSA-algoritmin avulla. Tätä kirjoitettaessa syntyneillä näppäimillä on 3072 bittiä. Bittien määrää voi muokata käyttämällä -b
– valintaa. Esimerkiksi 4096 bittiä sisältävien avainten luomiseksi voit tehdä:
ssh-keygen -t rsa -b 4096
prosessin aikana sinulta kysytään salasanaa. Paina vain Enter, kun pyydetään luomaan avain.
oletuksena julkinen avain on tallennettu tiedostoon ~/.ssh/id_rsa.pub
, kun taas ~/.ssh/id_rsa
on yksityinen avain. Kopioi nyt id_rsa.pub
tiedosto etäkoneeseen ja liitä se ~/.ssh/authorized_keys
syöttämällä:
ssh-copy-id username@remotehost
lopuksi tarkistetaan authorized_keys
tiedosto, vain todennetulla käyttäjällä pitäisi olla luku-ja kirjoitusoikeudet. Jos oikeudet eivät ole oikein muuta niitä:
chmod 600 .ssh/authorized_keys
sinun pitäisi nyt pystyä SSH isännälle ilman, että sinulta pyydetään salasanaa.
tuo avaimia julkisista avainpalveluista
nykyään monilla käyttäjillä on jo ssh-avaimia rekisteröitynä palveluihin, kuten Launchpadiin tai GitHubiin. Ne voidaan tuoda helposti:
ssh-import-id <username-on-remote-service>
etuliite lp:
on implisiittinen ja tarkoittaa hakemista Launchpadista, vaihtoehto gh:
tekee työkalun hakemisen sen sijaan GitHubista.
kahden tekijän todennus U2F/FIDO
OpenSSH 8.2 Lisätty tuki U2F/FIDO-laitteistotodennuslaitteille. Näitä laitteita käytetään lisäturvakerroksen tarjoamiseen nykyisen avainpohjaisen todennuksen päälle, koska laitteistotunnuksen on oltava läsnä todennuksen viimeistelemiseksi.
se on hyvin helppokäyttöinen ja setup. Ainoa lisäaskel on luoda uusi näppäimistö, jota voidaan käyttää laitteen kanssa. Siihen voidaan käyttää kahta avaintyyppiä: ecdsa-sk
ja ed25519-sk
. Edellisessä on laajempi laitetuki, kun taas jälkimmäisessä saatetaan tarvita uudempaa laitetta.
kun näppäimistö on luotu, sitä voidaan käyttää kuten normaalisti mitä tahansa muunlaista avainta opensshissa. Ainoa vaatimus on, että käyttääkseen yksityistä avainta, U2F-laitteen on oltava läsnä isännässä.
esimerkiksi kytke U2F-laite sisään ja luo sen kanssa käytettävä näppäimistö:
$ ssh-keygen -t ecdsa-skGenerating public/private ecdsa-sk key pair.You may need to touch your authenticator to authorize key generation. <-- touch deviceEnter file in which to save the key (/home/ubuntu/.ssh/id_ecdsa_sk): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ubuntu/.ssh/id_ecdsa_skYour public key has been saved in /home/ubuntu/.ssh/id_ecdsa_sk.pubThe key fingerprint is:SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo ubuntu@focal
Siirrä nyt vain julkinen osa palvelimelle ~/.ssh/authorized_keys
ja olet valmis lähtemään:
$ ssh -i .ssh/id_ecdsa_sk [email protected] user presence for key ECDSA-SK SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo <-- touch deviceWelcome to Ubuntu Focal Fossa (GNU/Linux 5.4.0-21-generic x86_64)(...)[email protected]:~$