Mainos / Advertisement:

Ero sivun ”Ssh” versioiden välillä

Kohteesta Taisto
Siirry navigaatioon Siirry hakuun
 
(52 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
SSH on käytännöllinen etähallinta sovellus linuxille.
+
<languages/>
 +
<translate>
 +
<!--T:1-->
 +
SSH on käytännöllinen etähallinta palvelu linuxille. <br />
  
 +
<!--T:2-->
 +
[http://en.wikipedia.org/wiki/Secure_Shell SSH (Secure Shell)] on myös protokolla, mutta tässä artikkelissa käsitellään apt pakettia ssh.
  
== Asennus ja peruskonfigurointi ==
+
== Asennus == <!--T:3-->
  
 +
<!--T:4-->
 +
Asennetaan ssh -paketti aptitude:lla.
  
  aptitude install ssh
+
  <!--T:5-->
 +
[[aptitude]] install ssh
  
/etc/ssh/sshd_config tiedostosta löytyy ssh serverin tärkeät konfiguraatiot. Sieltä voi muuttaa helposti asetuksia
+
== Konfigurointi == <!--T:6-->
  
nano /etc/ssh/sshd_config
 
  
Port 22                                ''Tähän voit laittaa portin jota haluat ssh:n käyttävän''
+
=== /etc/ssh/sshd_config === <!--T:7-->
LoginGraceTime 120                      ''Tämä rivi määrittelee autentikoinnin odotusajan sisäänkirjautuessa''
 
PermitRootLogin yes                    ''Tällä rivillä voit sallia tai estää pääkäyttäjällä sisäänkirjautumisen''
 
#MaxStartups 10:30:60                  ''Tässä voit määritellä kuinka monta autentikoimatonta istuntoa voi olla samaan aikaan päällä''
 
#Banner /etc/issue.net                  ''Ottamalla kommentoinnin pois asetat ssh-serverin näyttämään /etc/issue.net tiedostosta löytyvän bannerin sisäänkirjautuessa''
 
  
 +
<!--T:8-->
 +
Tiedostosta löytyy ssh serverin tärkeät konfiguraatiot.
  
  service ssh restart
+
<!--T:9-->
 +
Muokataan sitä nano:lla
 +
 
 +
  <!--T:10-->
 +
[[nano]] /etc/ssh/sshd_config
 +
 
 +
<!--T:11-->
 +
Portti (TCP, UDP), määritetään numerolla (oletus 22).
 +
Port 22
 +
 
 +
<!--T:12-->
 +
Kirjautumisen yhteyden aikakatkaisu, määritetään sekunteina (oletus 120).
 +
LoginGraceTime 120
 +
 
 +
<!--T:13-->
 +
Sallitaan tai estetään root -käyttäjän kirjautuminen ssh:lla, määritetään ''yes'' tai ''no'' (oletus ''yes'').
 +
'''Ehdottomasti suositeltavaa estää root käyttäjän kirjautuminen SSH yhteydellä.'''
 +
 
 +
<!--T:14-->
 +
PermitRootLogin yes
 +
 
 +
<!--T:15-->
 +
Autentikoimattomien yhteyksien sallittu määrä, määritetään [vähintään]:[todennäköisyys%]:[enintään]
 +
(todennäköisyys% kasvaa lineaarisesti, kun lähestytään enimmäismäärää)
 +
MaxStartups 10:30:60
 +
 
 +
<!--T:16-->
 +
Kommentoimattomana (ilman '#' edessä) tulostaa viestin käyttäjän kirjautuessa (käyttäjänimen syöttämisen jälkeen).
 +
Banner /etc/issue.net
 +
Viestiä voi muokata nano:lla
 +
nano /etc/issue.net
 +
 
 +
<!--T:17-->
 +
Kirjautumisen jälkeen nähtävä viesti:
 +
 
 +
<!--T:18-->
 +
[[nano]] /etc/motd
 +
 
 +
<!--T:19-->
 +
Oletusviesti:
 +
 
 +
<!--T:20-->
 +
The programs included with the Debian GNU/Linux system are free software;
 +
the exact distribution terms for each program are described in the
 +
individual files in /usr/share/doc/*/copyright.
 +
 +
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 +
permitted by applicable law.
 +
 
 +
 
 +
 
 +
<!--T:21-->
 +
Lopuksi otetaan muokattu konfiguraatio käyttöön käynnistämällä ssh palvelu uudestaan.
 +
 
 +
<!--T:22-->
 +
service ssh restart
 +
 
 +
<!--T:23-->
 +
Suositus on asentaa [[Fail2ban]] SSH-palvelimelle, sillä automaattisia botteja on olemssa ja yrittää hyökätä SSH palvelimiin.
 +
 
 +
== Lisäasetukset == <!--T:24-->
 +
 
 +
<!--T:25-->
 +
Salli enintään istuntoja per käyttäjä
 +
 
 +
  <!--T:26-->
 +
MaxSessions 10
 +
 
 +
 
 +
<!--T:27-->
 +
Salli vain käyttäjää matti kirjautumaan SSH yhteydellä.
 +
 
 +
  <!--T:28-->
 +
AllowUsers matti
 +
 
 +
<!--T:29-->
 +
Sallitaan tietyn käyttäjän tai käyttäjien kirjautuminen vain tietystä LANista
 +
 
 +
<!--T:30-->
 +
AllowUsers root@''88.148.222.100''
 +
AllowUsers root@''example.com''
 +
AllowUsers root@''192.168.*.*'' Tässä esimerkissä kaikki osoitteesta 192.168.0.0/16 pääsee sisälle
 +
 
 +
<!--T:31-->
 +
Estä käyttäjää paavo kirjautumaan SSH yhteydellä.
 +
 
 +
  <!--T:32-->
 +
DenyUsers
 +
 
 +
<!--T:33-->
 +
Salli käyttäjäryhmässä olevien käyttäjien kirjautuminen SSH yhteydellä.
 +
 
 +
<!--T:34-->
 +
AllowGroups Admins
 +
 
 +
<!--T:35-->
 +
Estä käyttäjäryhmässä olevia käyttäjiä kirjautumasta SSH yhteydellä.
 +
 
 +
<!--T:36-->
 +
DenyGroups
 +
 
 +
== Autentikointi avainpareilla == <!--T:37-->
 +
 
 +
Luodaan julkinen ja privaati avain.
 +
 
 +
  ssh-keygen -t rsa -b 2048
 +
 
 +
 
 +
Esimerkki tulostus
 +
 
 +
<pre>
 +
Generating public/private rsa key pair.
 +
Enter file in which to save the key (/root/.ssh/id_rsa):
 +
Enter passphrase (empty for no passphrase):
 +
Enter same passphrase again:
 +
Your identification has been saved in /root/.ssh/id_rsa.
 +
Your public key has been saved in /root/.ssh/id_rsa.pub.
 +
The key fingerprint is:
 +
9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 root@server1
 +
The key's randomart image is:
 +
+--[ RSA 2048]----+
 +
|          .o.    |
 +
|          ..    |
 +
|        ..++ .  |
 +
|        o=E *    |
 +
|      .Sooo o  |
 +
|      =.o o    |
 +
|      * . o      |
 +
|    o +        |
 +
|    . .          |
 +
+-----------------+
 +
</pre>
 +
 
 +
Kopioi privaattiavain toiselle paikkaan josta haluat päästä kirjautumaan.
 +
 
 +
  ssh-copy-id -i /root/.ssh/id_rsa.pub root@server2
 +
 
 +
Luo hakemisto ssh:lle jos sitä ei ole
 +
 
 +
  mkdir -p ~/.ssh/
 +
 
 +
Kopioi public key authorized_keys tiedostoon.
 +
 
 +
  cat id_rsa.pub >> ~/.ssh
 +
 
 +
Testaa kirjautuminen
 +
 
 +
ssh root@server1
 +
 
 +
=== Avaimet toiselle käyttäjätilille ===
 +
 
 +
Luodaan julkinen ja privaattiavain toiselle käyttäjätilille
 +
 
 +
  ssh-keygen -t rsa -b 2048 -f username
 +
 
 +
Tämä tallentaa avaimen käyttäjän nimellä. Lisää username.pub tiedoston sisältö käyttäjän kotikansion alle olevaan authorized_keys tiedostoon
 +
 
 +
cat username.pub >> ~/.ssh/authorized_keys
 +
 
 +
Testaa kirjautuminen. Lisää -i parametriin privaattiavain tiedosto.
 +
 
 +
  ssh -i ~/.ssh/username username@server1
 +
 
 +
=== Konfiguraatio jossa valmiina polku ssh avaimelle ===
 +
 
 +
Luo konfiguraatio tiedosto kotikansion alle
 +
 
 +
  nano ~/.ssh/config
 +
 
 +
Esimerkiksi seuraavanlaiseksi:
 +
 
 +
* Host palvelimen IP/Hostname
 +
* IdentifyFile Privaattitiedostopolku
 +
* User jolla kirjaudutaan tälläprivaattiavainta
 +
<pre>
 +
Host server1.example.org
 +
  IdentityFile ~/.ssh/id_rsa
 +
  User username
 +
Host server2.example.org
 +
  IdentityFile /backup/home/userName/.ssh/id_rsa
 +
</pre>
 +
 
 +
Yhdistä palvelimelle
 +
 
 +
  ssh server1.example.org
 +
 
 +
ja pitäisi mennä suoraan sisään ilman -i parametriä.
 +
 
 +
[[Luokka:Linux|Ssh]]
 +
 
 +
== SSH Tunneli ==
 +
 
 +
SSH_tunneli on SSH-protokolan porttiohjaus, joka ei vaadi erityisiä toimenpiteitä ja toimii tavallisen käyttäjän oikeuksilla. Tämä on todella helppo myöskoinn käyttää.
 +
 
 +
Salli palvelimen konfiguraatiosta SSH-tunneli <code>/etc/ssh/sshd_config</code> tiedostosta.
 +
 
 +
PermitTunnel yes
 +
 
 +
Aja sitten asiakasohjelmalla komento. Tämä tekee SSH-porttiohjauksen localhost:8080 server.local palvelimeen. Näin voit yhdistää IP-tunnelin yli server.local palvelimen 8080 porttiin suoraan clientista käsin.
 +
 
 +
ssh -L 8080 [email protected]
 +
 
 +
Tässä toinen esimerkki, jossa on tehty tunneloini paikallisesta 2222 portista etäkoneen porttiin 22 (ssh).
 +
 
 +
ssh -L 2222:server2.local:22 [email protected]
 +
 
 +
== SFTP ==
 +
 
 +
Konfiguroi SFTP:
 +
 
 +
  nano /etc/ssh/sshd_config
 +
 
 +
<pre>
 +
Subsystem sftp internal-sftp
 +
 
 +
#Salli vain ryhmän sftp käyttämään SFTP:tä.
 +
Match Group sftp
 +
  ChrootDirectory %h
 +
  ForceCommand internal-sftp
 +
  AllowTCPForwarding no
 +
</pre>
 +
 
 +
Luo käyttäjät
 +
 
 +
  adduser mikko
 +
  adduser mikko sftp
 +
 
 +
Lisää vielä sallitut käyttäjät jotka saa käyttää SSH:ta ja SFTP:tä
 +
 
 +
  AllowUsers mikko
 +
 
 +
Käynnistä lopuksi SSH uudelleen.
 +
 
 +
</translate>
 +
 
 +
[[Luokka:Linux|Ssh]]

Nykyinen versio 9. maaliskuuta 2019 kello 18.21

Muut kielet:
English • ‎suomi

SSH on käytännöllinen etähallinta palvelu linuxille.

SSH (Secure Shell) on myös protokolla, mutta tässä artikkelissa käsitellään apt pakettia ssh.

Asennus

Asennetaan ssh -paketti aptitude:lla.

aptitude install ssh

Konfigurointi

/etc/ssh/sshd_config

Tiedostosta löytyy ssh serverin tärkeät konfiguraatiot.

Muokataan sitä nano:lla

nano /etc/ssh/sshd_config

Portti (TCP, UDP), määritetään numerolla (oletus 22).

Port 22

Kirjautumisen yhteyden aikakatkaisu, määritetään sekunteina (oletus 120).

LoginGraceTime 120

Sallitaan tai estetään root -käyttäjän kirjautuminen ssh:lla, määritetään yes tai no (oletus yes). Ehdottomasti suositeltavaa estää root käyttäjän kirjautuminen SSH yhteydellä.

PermitRootLogin yes

Autentikoimattomien yhteyksien sallittu määrä, määritetään [vähintään]:[todennäköisyys%]:[enintään] (todennäköisyys% kasvaa lineaarisesti, kun lähestytään enimmäismäärää)

MaxStartups 10:30:60

Kommentoimattomana (ilman '#' edessä) tulostaa viestin käyttäjän kirjautuessa (käyttäjänimen syöttämisen jälkeen).

Banner /etc/issue.net

Viestiä voi muokata nano:lla

nano /etc/issue.net

Kirjautumisen jälkeen nähtävä viesti:

nano /etc/motd

Oletusviesti:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.


Lopuksi otetaan muokattu konfiguraatio käyttöön käynnistämällä ssh palvelu uudestaan.

service ssh restart

Suositus on asentaa Fail2ban SSH-palvelimelle, sillä automaattisia botteja on olemssa ja yrittää hyökätä SSH palvelimiin.

Lisäasetukset

Salli enintään istuntoja per käyttäjä

 MaxSessions 10


Salli vain käyttäjää matti kirjautumaan SSH yhteydellä.

 AllowUsers matti

Sallitaan tietyn käyttäjän tai käyttäjien kirjautuminen vain tietystä LANista

AllowUsers root@88.148.222.100
AllowUsers root@example.com
AllowUsers root@192.168.*.* Tässä esimerkissä kaikki osoitteesta 192.168.0.0/16 pääsee sisälle

Estä käyttäjää paavo kirjautumaan SSH yhteydellä.

 DenyUsers

Salli käyttäjäryhmässä olevien käyttäjien kirjautuminen SSH yhteydellä.

AllowGroups Admins

Estä käyttäjäryhmässä olevia käyttäjiä kirjautumasta SSH yhteydellä.

DenyGroups

Autentikointi avainpareilla

Luodaan julkinen ja privaati avain.

 ssh-keygen -t rsa -b 2048


Esimerkki tulostus

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 root@server1
The key's randomart image is:
+--[ RSA 2048]----+
|          .o.    |
|           ..    |
|        ..++ .   |
|        o=E *    |
|       .Sooo o   |
|       =.o o     |
|      * . o      |
|     o +         |
|    . .          |
+-----------------+

Kopioi privaattiavain toiselle paikkaan josta haluat päästä kirjautumaan.

 ssh-copy-id -i /root/.ssh/id_rsa.pub root@server2

Luo hakemisto ssh:lle jos sitä ei ole

 mkdir -p ~/.ssh/

Kopioi public key authorized_keys tiedostoon.

 cat id_rsa.pub >> ~/.ssh

Testaa kirjautuminen

ssh root@server1

Avaimet toiselle käyttäjätilille

Luodaan julkinen ja privaattiavain toiselle käyttäjätilille

 ssh-keygen -t rsa -b 2048 -f username

Tämä tallentaa avaimen käyttäjän nimellä. Lisää username.pub tiedoston sisältö käyttäjän kotikansion alle olevaan authorized_keys tiedostoon

cat username.pub >> ~/.ssh/authorized_keys

Testaa kirjautuminen. Lisää -i parametriin privaattiavain tiedosto.

 ssh -i ~/.ssh/username username@server1

Konfiguraatio jossa valmiina polku ssh avaimelle

Luo konfiguraatio tiedosto kotikansion alle

 nano ~/.ssh/config

Esimerkiksi seuraavanlaiseksi:

  • Host palvelimen IP/Hostname
  • IdentifyFile Privaattitiedostopolku
  • User jolla kirjaudutaan tälläprivaattiavainta
Host server1.example.org
  IdentityFile ~/.ssh/id_rsa
  User username
Host server2.example.org
  IdentityFile /backup/home/userName/.ssh/id_rsa

Yhdistä palvelimelle

 ssh server1.example.org 

ja pitäisi mennä suoraan sisään ilman -i parametriä.

SSH Tunneli

SSH_tunneli on SSH-protokolan porttiohjaus, joka ei vaadi erityisiä toimenpiteitä ja toimii tavallisen käyttäjän oikeuksilla. Tämä on todella helppo myöskoinn käyttää.

Salli palvelimen konfiguraatiosta SSH-tunneli /etc/ssh/sshd_config tiedostosta.

PermitTunnel yes

Aja sitten asiakasohjelmalla komento. Tämä tekee SSH-porttiohjauksen localhost:8080 server.local palvelimeen. Näin voit yhdistää IP-tunnelin yli server.local palvelimen 8080 porttiin suoraan clientista käsin.

ssh -L 8080 [email protected]

Tässä toinen esimerkki, jossa on tehty tunneloini paikallisesta 2222 portista etäkoneen porttiin 22 (ssh).

ssh -L 2222:server2.local:22 [email protected]

SFTP

Konfiguroi SFTP:

 nano /etc/ssh/sshd_config
Subsystem sftp internal-sftp

#Salli vain ryhmän sftp käyttämään SFTP:tä.
Match Group sftp
   ChrootDirectory %h
   ForceCommand internal-sftp
   AllowTCPForwarding no

Luo käyttäjät

 adduser mikko
 adduser mikko sftp

Lisää vielä sallitut käyttäjät jotka saa käyttää SSH:ta ja SFTP:tä

 AllowUsers mikko

Käynnistä lopuksi SSH uudelleen.

Mainos / Advertisement: