Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • Mike
  • Patrik
  • master
  • own-vm
4 results

Target

Select target project
No results found
Select Git revision
  • Mike
  • Patrik
  • master
  • own-vm
4 results
Show changes

Commits on Source 44

29 files
+ 2817
118
Compare changes
  • Side-by-side
  • Inline

Files

+70 −18
Original line number Diff line number Diff line
image: kroniak/ssh-client
# image: kroniak/ssh-client

stages:
  - generate
  - build
  - deploy

home:
variables:
  CI_REGISTRY_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAME}
  KUBECONFIG_VAR_NAME: KUBECONFIG

# home:
#   stage: deploy
#   before_script:
#     - eval $(ssh-agent -s)
#     - echo "$SSH" | tr -d '\r' | ssh-add -
#     - mkdir -p ~/.ssh/socket
#     - chmod 700 ~/.ssh
#     - cp .magic_ssh_config ~/.ssh/config
#   script:
#     # AFS magic incoming
#     - ssh mikewashere@centaur.sch.bme.hu cp /afs/sch.bme.hu/home/mikewashere/.system/mikewashere.keytab /tmp/mikewashere.keytab
#     - ssh mikewashere@centaur.sch.bme.hu kinit -k -t /tmp/mikewashere.keytab mikewashere
#     - ssh mikewashere@centaur.sch.bme.hu rm /tmp/mikewashere.keytab
#     - ssh mikewashere@centaur.sch.bme.hu aklog sch.bme.hu -k SCH.BME.HU
#     - ssh mikewashere@centaur.sch.bme.hu mkdir -p /home/mikewashere/public_html/linux
#     # actual work
#     - scp -r $PWD/* mikewashere@centaur.sch.bme.hu:/home/mikewashere/public_html/linux/
#     - ssh mikewashere@centaur.sch.bme.hu env sh -c 'echo lolwut; cd public_html/linux; bash cirun.sh'
#   only:
#     refs:
#       - master

gen_pres:
  stage: generate
  image: 
    name: marpteam/marp-cli
    entrypoint: [""]
  script:
    - alias marp="node /home/marp/.cli/marp-cli.js"
    - cd eloadas
    - marp -o index.html presentation.md
  artifacts:
    paths:
      - eloadas/index.html    

container:
  stage: build
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  before_script:
    - mkdir -p /kaniko/.docker
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json
  script:
    - |
      /kaniko/executor --context ${CI_PROJECT_DIR} \
      --dockerfile ${CI_PROJECT_DIR}/Dockerfile \
      --destination ${CI_REGISTRY_IMAGE}:latest
  only:
    - master
  except:
    - tags

kubernetes:
  stage: deploy
  image: 
    name: harbor.sch.bme.hu/kszk/kube-tools:latest
    entrypoint: [""]
  before_script:
    - eval $(ssh-agent -s)
    - echo "$SSH" | tr -d '\r' | ssh-add -
    - mkdir -p ~/.ssh/socket
    - chmod 700 ~/.ssh
    - cp .magic_ssh_config ~/.ssh/config
    - chmod 600 ${!KUBECONFIG_VAR_NAME}
    - export KUBECONFIG=${!KUBECONFIG_VAR_NAME}
  script:
    # AFS magic incoming
    - ssh mikewashere@centaur.sch.bme.hu cp /afs/sch.bme.hu/home/mikewashere/.system/mikewashere.keytab /tmp/mikewashere.keytab
    - ssh mikewashere@centaur.sch.bme.hu kinit -k -t /tmp/mikewashere.keytab mikewashere
    - ssh mikewashere@centaur.sch.bme.hu rm /tmp/mikewashere.keytab
    - ssh mikewashere@centaur.sch.bme.hu aklog sch.bme.hu -k SCH.BME.HU
    - ssh mikewashere@centaur.sch.bme.hu mkdir -p /home/mikewashere/public_html/linux
    # actual work
    - scp -r $PWD/* mikewashere@centaur.sch.bme.hu:/home/mikewashere/public_html/linux/
    - ssh mikewashere@centaur.sch.bme.hu env sh -c 'echo lolwut; cd public_html/linux; bash cirun.sh'
    - kubectl rollout restart deployment linux-presentation
  only:
    refs:
    - master
  except:
    - tags
Original line number Diff line number Diff line
@@ -3,3 +3,6 @@ Host centaur.sch.bme.hu
    ControlMaster auto
    ControlPersist yes
    ControlPath ~/.ssh/socket/%r@%h:%p
    KexAlgorithms +diffie-hellman-group1-sha1
    Ciphers +3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr
    HostKeyAlgorithms +ssh-rsa

Dockerfile

0 → 100644
+4 −0
Original line number Diff line number Diff line
FROM nginx:1.21.6

COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY . /usr/share/nginx/html
+4 −3
Original line number Diff line number Diff line
@@ -33,7 +33,8 @@
- Pár fontosabb parancsról
- Egy (web)szerver üzemeltetéséhez szükséges tudásról

## Anyag előadásonként
## Jegyzet

- [Linux alapok](linux%20alapok.md)
- [Szerver kezelés](szerver%20kezelés.md)
- [1. Videó](első%20videó.md)
- [2. Videó](második%20videó.md)
+0 −1
Original line number Diff line number Diff line


     
     

best_movie_ever.txt

0 → 100644
+1363 −0

File added.

Preview size limit exceeded, changes collapsed.

+2 −1
Original line number Diff line number Diff line
#!/bin/bash

if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
  echo "Not yet 😉" > "második videó.md"
  #echo "Not yet 😉" > "második videó.md"
  echo "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
fi

eloadas.html

0 → 100644
+283 −0
Original line number Diff line number Diff line
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="generator" content="pandoc">
  <meta name="author" content="Tóth Miklós">
  <meta name="dcterms.date" content="2021-03-21">
  <title>Linux előadás</title>
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
  <link rel="stylesheet" href="https://unpkg.com/reveal.js@^4//dist/reset.css">
  <link rel="stylesheet" href="https://unpkg.com/reveal.js@^4//dist/reveal.css">
  <style>
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    span.underline{text-decoration: underline;}
    div.column{display: inline-block; vertical-align: top; width: 50%;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    ul.task-list{list-style: none;}
    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
  </style>
  <link rel="stylesheet" href="https://unpkg.com/reveal.js@^4//dist/theme/black.css" id="theme">
</head>
<body>
  <div class="reveal">
    <div class="slides">

<section id="title-slide">
  <h1 class="title">Linux előadás</h1>
  <p class="author">Tóth Miklós</p>
  <p class="date">March 21, 2021</p>
</section>

<section id="pár-egyéb-hasznos-parancs" class="slide level1">
<h1>Pár egyéb hasznos parancs</h1>
</section>
<section id="wc" class="slide level1">
<h1><code>wc</code></h1>
<ul>
<li>word counter</li>
<li>szavak, sorok számolása</li>
</ul>
<pre class="shell-session"><code>[mike@thinkyboi ~]$ echo &quot;egy két há&quot; | wc -w
3
[mike@thinkyboi ~]$ echo &quot;egy két há&quot; | wc -l
1
[mike@thinkyboi ~]$ echo &quot;egy
két
&quot; | wc -l
3</code></pre>
</section>
<section id="tr" class="slide level1">
<h1><code>tr</code></h1>
<ul>
<li>karaktereket cserél ki vagy töröl</li>
</ul>
<pre class="shell-session"><code>[mike@thinkyboi ~]$ echo &quot;almafa&quot; | tr &quot;a&quot; &quot;e&quot;
elmefe
[mike@thinkyboi ~]$ echo &quot;almafa körtefa eperfa&quot; | tr &quot; &quot; &quot;\n&quot;
almafa
körtefa
eperfa
[mike@thinkyboi ~]$ echo &quot;almafa&quot; | tr -d &quot;a&quot;
lmf</code></pre>
</section>
<section id="curl" class="slide level1">
<h1><code>curl</code></h1>
<ul>
<li>http shellből</li>
<li>stdout-ra írja ki, kivéve, ha van <code>-o</code> kapcsoló</li>
</ul>
<pre class="shell-session"><code>[mike@thinkyboi ~]$ curl https://home.sch.bme.hu/~mikewashere/linux/eloadas.md | grep stdout
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   777  100   777    0     0  33782      0 --:--:-- --:--:-- --:--:-- 33782
- stdout-ra írja ki
[mike@thinkyboi ~]$ curl https://home.sch.bme.hu/~mikewashere/linux/eloadas.md -o eloadas.md
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   777  100   777    0     0  31080      0 --:--:-- --:--:-- --:--:-- 31080
[mike@thinkyboi ~]$ </code></pre>
</section>
<section id="sh-fileok" class="slide level1">
<h1><code>.sh</code> fileok</h1>
<ul>
<li>shell automatizálása</li>
<li>mintha soronként kiadnánk a parancsokat</li>
</ul>
</section>
<section id="egy-.sh-file" class="slide level1">
<h1>egy <code>.sh</code> file</h1>
<pre class="shell-session"><code>[mike@thinkyboi tmp]$ vi test.sh
[mike@thinkyboi tmp]$ cat test.sh 
echo &quot;ez simán működik&quot; | cowsay
curl &quot;https://home.sch.bme.hu/~mikewashere/linux/eloadas.md&quot; | grep &quot;soronként&quot; | cowsay

[mike@thinkyboi tmp]$ bash test.sh 
 _____________________ 
&lt; ez simán működik &gt;
 --------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1596  100  1596    0     0  69391      0 --:--:-- --:--:-- --:--:-- 69391
 _________________________________ 
/ - mintha soronként kiadnánk a \
\ parancsokat                     /
 --------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
[mike@thinkyboi tmp]$ </code></pre>
</section>
<section id="shebang" class="slide level1">
<h1>shebang</h1>
<ul>
<li>file futtatásakor a kernel meglesi mi van az elején</li>
<li>el tudunk indítani scripteket programként</li>
<li><code>#!&lt;program&gt;</code></li>
</ul>
</section>
<section id="shebang-1" class="slide level1">
<h1>shebang</h1>
<pre class="shell-session"><code>[mike@thinkyboi tmp]$ vi test.sh 
[mike@thinkyboi tmp]$ cat test.sh 
#!/bin/bash
echo &quot;ez simán működik&quot; | cowsay
curl &quot;https://home.sch.bme.hu/~mikewashere/linux/eloadas.md&quot; | grep &quot;soronként&quot; | cowsay

[mike@thinkyboi tmp]$ chmod +x test.sh 
[mike@thinkyboi tmp]$ ./test.sh 
 _____________________ 
&lt; ez simán működik &gt;
 --------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1596  100  1596    0     0  11319      0 --:--:-- --:--:-- --:--:-- 11319
 _________________________________ 
/ - mintha soronként kiadnánk a \
\ parancsokat                     /
 --------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
[mike@thinkyboi tmp]$ </code></pre>
</section>
<section id="tűzfal" class="slide level1">
<h1>tűzfal</h1>
<ul>
<li>a kernel belsejében -&gt; gyors, de low-level</li>
<li>iptables</li>
<li>kényelmesebb egy tűzfal-kezelő</li>
</ul>
</section>
<section id="ufw" class="slide level1">
<h1>UFW</h1>
<ul>
<li>uncomplicated firewall</li>
<li>egyszerű</li>
</ul>
<pre class="shell-session"><code>[mike@thinkyboi tmp]$ sudo ufw allow 80
Rules updated
Rules updated (v6)
[mike@thinkyboi tmp]$ sudo ufw allow https
Rules updated
Rules updated (v6)
[mike@thinkyboi tmp]$ sudo ufw enable</code></pre>
</section>
<section id="ssh-kulcsok" class="slide level1">
<h1>SSH kulcsok</h1>
<ul>
<li>biztonságosabb, mint egy jelszó</li>
<li>sok algoritmus, RSA, elliptikus görbék</li>
<li>publikus-privát</li>
<li>privát saját gépen, védve</li>
<li>publikus ott, ahova belépnénk</li>
<li><code>~/.ssh/authorized_keys</code></li>
</ul>
</section>
<section id="generálás" class="slide level1">
<h1>Generálás</h1>
<pre class="shell-session"><code>mike@thinkyboi:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mike/.ssh/id_rsa): 
Created directory &#39;/home/mike/.ssh&#39;.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/mike/.ssh/id_rsa
Your public key has been saved in /home/mike/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:tYZX08XEZfJP5j/um2Y9KUgG+jffe82ONwgzkt4p0hc mike@thinkyboi
The key&#39;s randomart image is:
+---[RSA 3072]----+
|              .+*|
|             . =o|
|          . o . +|
|         + o . +.|
|        S *     o|
|       . = E    .|
|        + = B .o=|
|       . = B ooBO|
|        . + o.*XB|
+----[SHA256]-----+
mike@thinkyboi:~$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDjAZMAbpNutuc/ZgHWMcjWcPQOC0d8+JrDaHMnxZfRtfdyrgZDfPmMER95148JVEfkjjhur8a+IEfQM59o+yq95+yNvJFT6Nr5JzHK8dC5IuDvvEVNrKPwmW4UIgm1e5b95pGivJ5cnoiXevtp87seaxh0DlZFONKUeIFnwyDBUII7mRyXDn7MrFlAcxXtlZnSSCXXLGUMZI7nldiyRI9gXlZYCpfA8XrXrnM6JAIA+6VozhJurAKhygV6rH5yD4Vg+/Bs+wigywE3U79gbqpPzRegmxzKdgv+NNKV900DQVYNzvCU5o6q9d2amU+CDSw6KjU+4SLFOgZ3myXCyE9er3aaROj22sQdPwv8CnwtZstRibpp2SU627J4Vr7caPl8wrZcGvmXgD50mPh9Kdd+Yr5WJFSaAcog082aWBdrB3Qr9LM5DgcWulyDmUMmjA2WWCJN+t6vDT5d+2mYeBiZ2OY5ZkHyUjD6GVGBOZP/lP9EAxi3XwoM3V8TwoEgLD8= mike@thinkyboi
mike@thinkyboi:~$ </code></pre>
</section>
<section id="operátor" class="slide level1">
<h1><code>&gt;&gt;</code> operátor</h1>
<ul>
<li><code>&gt;</code> tesója</li>
<li>filehoz appendál</li>
</ul>
<pre class="shell"><code>curl https://git.sch.bme.hu/mikewashere.keys &gt;&gt; ~/.ssh/authorized_keys</code></pre>
</section>
<section id="házi-feladatok" class="slide level1">
<h1>Házi Feladatok</h1>
</section>
<section id="alap-házi" class="slide level1">
<h1>Alap házi</h1>
<p>Csinálj felhasználót a csapattársaidnak a VM-edre úgy, hogy hozzáférjenek a statikus weboldalak mappájához, ezután próbáljátok ki, hogy valóban hozzáfértek-e és ha igen, rakjatok valami funky html-t a mappába ajándékba a társaitoknak.</p>
<p>Hint: adduser/useradd, usermod/gpasswd, chmod.</p>
</section>
<section id="side-quest" class="slide level1">
<h1>Side Quest</h1>
<p>Állíts be kulcsos hitelesítést a képzés VM-eden az SSH kapcsolatodhoz. Ehhez szükséged lesz egy privát és egy publikus kulcsra a kliensgépeden.</p>
<p>Hint: ssh-keygen.</p>
</section>
<section id="expert-sudo" class="slide level1">
<h1>Expert (sudo)</h1>
<p>Nyomozz hogyan és miért műküdik a sudo parancs! Ha megtaláltad próbáld meg összefoglalni nekünk néhány mondatban.</p>
<p>Hint: setuid</p>
</section>
<section id="expert-csomag-mágus" class="slide level1">
<h1>Expert (Csomag mágus)</h1>
<p>Készíts egy új csomagot (package) egy általad válaszott programból (saját program is lehet), egy általad választott disztribúcióhoz.</p>
</section>
<section id="jó-munkát" class="slide level1">
<h1>Jó munkát!</h1>
</section>
    </div>
  </div>

  <script src="https://unpkg.com/reveal.js@^4//dist/reveal.js"></script>

  // reveal.js plugins
  <script src="https://unpkg.com/reveal.js@^4//plugin/notes/notes.js"></script>
  <script src="https://unpkg.com/reveal.js@^4//plugin/search/search.js"></script>
  <script src="https://unpkg.com/reveal.js@^4//plugin/zoom/zoom.js"></script>

  <script>

      // Full list of configuration options available at:
      // https://revealjs.com/config/
      Reveal.initialize({
      
        // Push each slide change to the browser history
        history: true,

        // reveal.js plugins
        plugins: [
          RevealNotes,
          RevealSearch,
          RevealZoom
        ]
      });
    </script>
    </body>
</html>

eloadas.md

0 → 100644
+231 −0
Original line number Diff line number Diff line
% Linux előadás
% Tóth Miklós
% March 21, 2021

# Pár egyéb hasznos parancs

# `wc`

- word counter
- szavak, sorok számolása

```shell-session
[mike@thinkyboi ~]$ echo "egy két há" | wc -w
3
[mike@thinkyboi ~]$ echo "egy két há" | wc -l
1
[mike@thinkyboi ~]$ echo "egy
két
há" | wc -l
3
```

# `tr`

- karaktereket cserél ki vagy töröl

```shell-session
[mike@thinkyboi ~]$ echo "almafa" | tr "a" "e"
elmefe
[mike@thinkyboi ~]$ echo "almafa körtefa eperfa" | tr " " "\n"
almafa
körtefa
eperfa
[mike@thinkyboi ~]$ echo "almafa" | tr -d "a"
lmf
```

# `curl`

- http shellből
- stdout-ra írja ki, kivéve, ha van `-o` kapcsoló

```shell-session
[mike@thinkyboi ~]$ curl https://home.sch.bme.hu/~mikewashere/linux/eloadas.md | grep stdout
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   777  100   777    0     0  33782      0 --:--:-- --:--:-- --:--:-- 33782
- stdout-ra írja ki
[mike@thinkyboi ~]$ curl https://home.sch.bme.hu/~mikewashere/linux/eloadas.md -o eloadas.md
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   777  100   777    0     0  31080      0 --:--:-- --:--:-- --:--:-- 31080
[mike@thinkyboi ~]$ 
```

# `.sh` fileok

- shell automatizálása
- mintha soronként kiadnánk a parancsokat

# egy `.sh` file

```shell-session
[mike@thinkyboi tmp]$ vi test.sh
[mike@thinkyboi tmp]$ cat test.sh 
echo "ez simán működik" | cowsay
curl "https://home.sch.bme.hu/~mikewashere/linux/eloadas.md" | grep "soronként" | cowsay

[mike@thinkyboi tmp]$ bash test.sh 
 _____________________ 
< ez simán működik >
 --------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1596  100  1596    0     0  69391      0 --:--:-- --:--:-- --:--:-- 69391
 _________________________________ 
/ - mintha soronként kiadnánk a \
\ parancsokat                     /
 --------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
[mike@thinkyboi tmp]$ 
```

# shebang

- file futtatásakor a kernel meglesi mi van az elején
- el tudunk indítani scripteket programként
- `#!<program>`

# shebang

```shell-session
[mike@thinkyboi tmp]$ vi test.sh 
[mike@thinkyboi tmp]$ cat test.sh 
#!/bin/bash
echo "ez simán működik" | cowsay
curl "https://home.sch.bme.hu/~mikewashere/linux/eloadas.md" | grep "soronként" | cowsay

[mike@thinkyboi tmp]$ chmod +x test.sh 
[mike@thinkyboi tmp]$ ./test.sh 
 _____________________ 
< ez simán működik >
 --------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1596  100  1596    0     0  11319      0 --:--:-- --:--:-- --:--:-- 11319
 _________________________________ 
/ - mintha soronként kiadnánk a \
\ parancsokat                     /
 --------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
[mike@thinkyboi tmp]$ 
```

# tűzfal

- a kernel belsejében -> gyors, de low-level
- iptables
- kényelmesebb egy tűzfal-kezelő

# UFW

- uncomplicated firewall
- egyszerű

```shell-session
[mike@thinkyboi tmp]$ sudo ufw allow 80
Rules updated
Rules updated (v6)
[mike@thinkyboi tmp]$ sudo ufw allow https
Rules updated
Rules updated (v6)
[mike@thinkyboi tmp]$ sudo ufw enable
```

# SSH kulcsok

- biztonságosabb, mint egy jelszó
- sok algoritmus, RSA, elliptikus görbék
- publikus-privát
- privát saját gépen, védve
- publikus ott, ahova belépnénk
- `~/.ssh/authorized_keys`

# Generálás

```shell-session
mike@thinkyboi:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mike/.ssh/id_rsa): 
Created directory '/home/mike/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/mike/.ssh/id_rsa
Your public key has been saved in /home/mike/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:tYZX08XEZfJP5j/um2Y9KUgG+jffe82ONwgzkt4p0hc mike@thinkyboi
The key's randomart image is:
+---[RSA 3072]----+
|              .+*|
|             . =o|
|          . o . +|
|         + o . +.|
|        S *     o|
|       . = E    .|
|        + = B .o=|
|       . = B ooBO|
|        . + o.*XB|
+----[SHA256]-----+
mike@thinkyboi:~$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDjAZMAbpNutuc/ZgHWMcjWcPQOC0d8+JrDaHMnxZfRtfdyrgZDfPmMER95148JVEfkjjhur8a+IEfQM59o+yq95+yNvJFT6Nr5JzHK8dC5IuDvvEVNrKPwmW4UIgm1e5b95pGivJ5cnoiXevtp87seaxh0DlZFONKUeIFnwyDBUII7mRyXDn7MrFlAcxXtlZnSSCXXLGUMZI7nldiyRI9gXlZYCpfA8XrXrnM6JAIA+6VozhJurAKhygV6rH5yD4Vg+/Bs+wigywE3U79gbqpPzRegmxzKdgv+NNKV900DQVYNzvCU5o6q9d2amU+CDSw6KjU+4SLFOgZ3myXCyE9er3aaROj22sQdPwv8CnwtZstRibpp2SU627J4Vr7caPl8wrZcGvmXgD50mPh9Kdd+Yr5WJFSaAcog082aWBdrB3Qr9LM5DgcWulyDmUMmjA2WWCJN+t6vDT5d+2mYeBiZ2OY5ZkHyUjD6GVGBOZP/lP9EAxi3XwoM3V8TwoEgLD8= mike@thinkyboi
mike@thinkyboi:~$ 
```

# `>>` operátor

- `>` tesója
- filehoz appendál
```shell
curl https://git.sch.bme.hu/mikewashere.keys >> ~/.ssh/authorized_keys
```

# Házi Feladatok

# Alap házi

Csinálj felhasználót a csapattársaidnak a VM-edre úgy, hogy
hozzáférjenek a statikus weboldalak mappájához,
ezután próbáljátok ki, hogy valóban hozzáfértek-e
és ha igen, rakjatok valami funky html-t a mappába ajándékba a társaitoknak.

Hint: adduser/useradd, usermod/gpasswd, chmod.

# Side Quest

Állíts be kulcsos hitelesítést a képzés VM-eden az SSH kapcsolatodhoz.
Ehhez szükséged lesz egy privát és egy publikus kulcsra a kliensgépeden.

Hint: ssh-keygen.

# Expert (sudo)

Nyomozz hogyan és miért műküdik a sudo parancs!
Ha megtaláltad próbáld meg összefoglalni nekünk néhány mondatban.

Hint: setuid

# Expert (Csomag mágus)

Készíts egy új csomagot (package) egy általad válaszott programból
(saját program is lehet), egy általad választott disztribúcióhoz.

# Jó munkát!

eloadas/.gitignore

0 → 100644
+2 −0
Original line number Diff line number Diff line
presentation.html
index.html
+207 −0
Original line number Diff line number Diff line
---
marp: true
theme: gaia
class: [lead, invert]
---
# KSZKépzés Linux
Tóth Miklós

---
<!-- class: [invert] --> 

## Mi is a Linux?

- kernel
    - de! GNU/Linux már OS
- disztrók
- GUI
- CLI

---

## CLI

*Command Line Interface*

- terminál
- shell
    - sh
    - bash
    - zsh
    - fish

---

## Shelles fogalmak

- kapcsolók `rm -rf`
- redirekció `ls > fajllista.txt`
- piping `cat alma.txt | grep körte`
- shell execution `echo a mappa tartalma: $(ls)`

---

## Szövegszerkesztők

- nano
- vi, vim, nvim

---

## Gyakori parancsok

- ls
- man
- cat
- echo
- cd
- mkdir
- rm
- rmdir
- touch

---

## Csomagkezelés

- Mi a csomag?
- Hogyan telepítünk programokat Linuxon?
- Miért jó ez?
- Hogy működik az `apt`?

---

## Fájlkezelés

- `/` jel van `\` helyett
- nincs `C:\`, hanem `/`-ből indul minden
- `/etc`, `/dev`, `/home`, `/bin`, `/lib`, `/proc`, stb.
- `../`, `./`, `~`, `~bela`

---

## Jogosultságok

- `user`, `group`, `others`
- `rwx` hármasok
- `setuid`, `setgid`, `sticky bit`
- `chmod`, `chown`, `chgrp`

---

## UNIX elvek

- KISS
- Everything is a file

---

## Architektúra

- Bootloader
- Kernel
- Init rendszer
- "Userland"

---

## Felhasználókezelés

- `useradd`, `usermod`, `userdel`
- (`adduser`, `deluser`)
- `passwd`
- `sudo`

---

## Csoportok

- `groups`
- `groupadd`, `groupdel`
- `usermod`
- `gpasswd`

---

## Init rendszer, systemd

- Miért?
- Mi egy service?
- systemctl
- journalctl

---

## Hálózat

- `ip address`, `ip addr add`
- `ip route`, `ip route add`
- hálózatkezelők, `NetworkManager`

---

## SSH

- secure remote shell
- kulcsok
- sok egyéb okos feature

---
<!-- class: [lead, invert] --> 

# Kahoot!

---

# Workshop time!

---

<!-- class: [invert] --> 

## 1. feladat

Telepíts fel egy apache2 webszervert és állítsd be, hogy egy mappában lévő szkripteket lefuttasson és kimenetüket leküldje!

---

```sh 
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/
```

```sh 
sudo nano /etc/apache2/sites-enabled/000-default.conf
```

```
<VirtualHost *:80>
   [...]
   <Directory "/var/www/html/scripts">
     AllowOverride None
     Require all granted
     Options +ExecCGI
     AddHandler cgi-script .cgi .pl .py .sh
   </Directory>
   DocumentRoot /var/www/html
   [...]
</VirtualHost>
```

---

```sh
#!/bin/bash

echo Content-type: text/html
echo
echo hello world
```

---

## 2. Feladat

- Nézzük meg milyen userként fut a webszerver!
- Csináljunk egy oldalt, ami kiírja az időt és azt, hogy hány user van belépve!
- Csináljunk egy oldalt, ami kiírja, hogy hányadik hét van!
    - hint: `jq`, https://hanyadikhetvan.attiss.eu/api
 No newline at end of file

favicon.ico

0 → 100644
+117 KiB

116.66 KiB | W: 256 | H: 256

feladat.md

0 → 100644
+221 −0
Original line number Diff line number Diff line
# Gyakorlat

## 0. csatlakozás a VM-hez

[see here](saját%20vm.md)

Ha gondoljátok vagy ha valaki nem nézett videót/jegyzetet és nem érti mi van,
akkor akár itt érdemes shellt mutogatni.

## 1. saját user létrehozása root jogokkal

Mindenki választ magának usert (nem kell schacc legyen), aztán
```shell
sudo useradd -s /bin/bash -m bela
```
`-m` = legyen home mappa  
ha megadják a `-G sudo` kapcsolót is, akkor nice, már van is sudo joguk,
a kövi rész skippelhető

legyen jelszó:
```shell
passwd bela
```

legyen sudo:
```shell
sudo usermod -aG sudo bela
```
ezzel lett sudo joga

### Alternatív

legyen user:
```shell
sudo adduser bela
```

legyen sudo:
```shell
sudo adduser bela sudo
```

---
a végén jelentkezzetek át az új userbe


## 2. shell játszadozás

Feladat: számoljuk meg, hogy a *Bee Movie* szövegében hányszor szerepel a
kis és nagybetűs "bee" szó.  
Ha lehet oldják meg maguktól, de vezethetitek is.

A szöveg elérhető itt: https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt

Vezessük végig őket lépésenként, hogy mit csinál a csomó parancs:

```shell
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt
```
-> letölti a szöveget és kiírja

olvassunk be less-sel
```shell
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | less
```


Na de oldjuk is meg a feladatot:

Okés, de:  
számolni a `wc`-vel lehet, de kéne szűrni a bee-kre, arra kell a `grep`,  
de:  
a `grep` az egész sort odaadja, amiben egyszer is ott a bee
tehát szét kéne szedni úgy, hogy minden szó külön sor legyen  
Megoldás: cseréljük ki a space-eket `\n`-re a `tr` használatával.

```shell
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n"
```  
Az idézőjelek fontosak.

Most már soronként jelenik meg, mehet a grep.  
```shell
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee
```  
Na most van egy csomó bee-nk, mehet a wc.

```shell
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee | wc -l
```
Elvileg **171**-et kéne kapni.

Ha zavar minket a curl letöltés mutató szövege, akkor adjunk neki egy `2>/dev/null`-t.

```shell
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt 2>/dev/null | tr " " "\n" | grep -i bee | wc -l
```

2 = stderr, /dev/null = speciális file, amibe bármit írhatunk, elveszik

---

Feladat: A méhek száma évről évre csökken, *let's save the bees*!
Írjuk bele a "bee"-ket egy fileba!

```shell
curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee > save_the_bees.txt
```

`nano save_the_bees.txt`-vel megleshetjük, hogy működött.

## 3. Script irogatás

Feladat: csináljunk egy scriptet, ami megmenti a méheket, és egy tehénnel kimondatja, hogy
hányan vannak.

A `cowsay` nincs fent a VM-eken, telepítsétek.
```shell
sudo apt install cowsay
```
Nyugodtan próbálgassátok ki.
```shell
cowsay hello
echo hello | cowsay
```

Csináljunk nano-val (vagy vim-mel, ha valaki azt szereti inkább)
egy új file-t, nevezzük el `bees.sh`-nak.

```shell
nano bees.sh
```

Vezessétek végig őket a megírásán vagy csináltassátok meg velük, itt egy mintamegoldás:
```shell
#!/bin/bash

curl https://home.sch.bme.hu/~mikewashere/linux/best_movie_ever.txt | tr " " "\n" | grep -i bee > save_the_bees.txt
echo $(cat save_the_bees.txt | wc -l ) méh van. | cowsay
```
*A felső sor opcionális.*

Ha megvan, futtassátok:
```shell
bash bees.sh
```
vagy, ha odatettétek az elejére a shebang-et:
```shell
chmod +x bees.sh
./bees.sh
```

## 4. Webszerver telepítése

Feladat: állítsanak be egy webszervert nginx-el, és rakjanak ki valami szöveget.

Telepítés:
```shell
sudo apt install nginx
```

Magától elindul, nézzük meg:
```shell
systemctl status nginx 
```

Alapból a `/var/www/html`-t szolgálja ki, menjünk oda
```shell
cd /var/www/html
ls -la
```
Látjuk, hogy root-é minden, adjuk oda a www-data-nak, magunknak meg adjunk www-data csoporttagságot
és adjunk a csoportnak minden jogot rekurzívan.
```shell
sudo chown -R www-data:www-data /var/www/html
sudo usermod -aG www-data bela
sudo chmod -R g+rwx /var/www/html
```
`-R`: rekurzívan  
vegyük fel a csoporttagságot, ehhez vagy ki és bejelentkezni kell vagy:
```shell
newgrp www-data
```

Most töröljük a korábbi weblapot és tegyünk ki valami sajátot:
```shell
cd /var/www/html
rm index.nginx-debian.html
nano index.html # írjanak bele bármi funky szöveget
```

## 5. Csináljunk tűzfalat

Az UFW (Uncomplicated FireWall) egy egyszerű tűzfalvezérlő progi.
Nézzük meg fut-e:
```shell
sudo systemctl status ufw
sudo ufw status
```
Fut, de ki van kapcsolva.

Előszöris engedjük be az SSH-t és http-t, hogy ne zárjuk ki magunkat:
```shell
sudo ufw limit ssh
sudo ufw allow http
```

A limit-tel limitálva engedélyeztük az ssh-t, így nem lehet gyorsan brute-force-olni.

és kapcsoljuk be:
```shell
sudo ufw enable
sudo ufw status
```
nice.

## Extra feladatötlet turbóújoncoknak

Csináljanak valami fancy weboldalt. Bármit.

hf.md

0 → 100644
+29 −0
Original line number Diff line number Diff line
# Házi Feladatok

## Alap házi

Csinálj felhasználót a csapattársaidnak a VM-edre úgy, hogy
hozzáférjenek a statikus weboldalak mappájához,
ezután próbáljátok ki, hogy valóban hozzáfértek-e
és ha igen, rakjatok valami funky html-t a mappába ajándékba a társaitoknak.

Hint: adduser/useradd, usermod/gpasswd, chmod.

## Side Quest

Állíts be kulcsos hitelesítést a képzés VM-eden az SSH kapcsolatodhoz.
Ehhez szükséged lesz egy privát és egy publikus kulcsra a kliensgépeden.

Hint: ssh-keygen.

## Expert (sudo)

Nyomozz hogyan és miért műküdik a sudo parancs!
Ha megtaláltad próbáld meg összefoglalni nekünk néhány mondatban.

Hint: setuid

## Expert (Csomag mágus) 

Készíts egy új csomagot (package) egy általad válaszott programból 
(saját program is lehet), egy általad választott disztribúcióhoz.
+8 −2
Original line number Diff line number Diff line
@@ -8,7 +8,13 @@
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <script async defer data-domain="home.sch.bme.hu" src="https://analytics.mikesweb.site/js/plausible.js"></script>
    <link rel="icon" type="image/x-icon" href="favicon.ico" />
    <link rel="stylesheet" href="https://unpkg.com/docute@4/dist/docute.css">
    <style>
        .medium-zoom-overlay {
            background: #2f3136 !important;
        }
    </style>
</head>
<body>
    <div id="docute"></div>
@@ -29,8 +35,8 @@
            }

            let tmp = [
                "első videó",
                //"második videó",
                "linux alapok",
                "szerver kezelés",
            ];

            let pages = [];

k8s/deployment.yaml

0 → 100644
+24 −0
Original line number Diff line number Diff line
apiVersion: apps/v1
kind: Deployment
metadata:
  name: linux-presentation
  namespace: kszk-kepzes-site
spec:
  selector:
    matchLabels:
      app: linux-presentation
  template:
    metadata:
      labels:
        app: linux-presentation
    spec:
      containers:
      - name: linux-presentation
        image: harbor.sch.bme.hu/kszk/linux-presentation:latest
        resources:
          limits:
            memory: "64Mi"
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: harbor

k8s/ingress.yaml

0 → 100644
+27 −0
Original line number Diff line number Diff line
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
    kubernetes.io/ingress.class: nginx
    kubernetes.io/tls-acme: 'true'
    nginx.ingress.kubernetes.io/proxy-body-size: 20m
    nginx.ingress.kubernetes.io/rewrite-target: /$1
  name: linux-presentation
  namespace: kszk-kepzes-site
spec:
  rules:
  - host: ujonc.kszk.bme.hu
    http:
      paths:
      - path: /studies/linux/(.*)
        pathType: Prefix
        backend:
          service:
            name: linux-presentation
            port:
              number: 80
  tls:
  - hosts:
    - ujonc.kszk.bme.hu
    secretName: kszkepzes-cert

k8s/service.yaml

0 → 100644
+11 −0
Original line number Diff line number Diff line
apiVersion: v1
kind: Service
metadata:
  name: linux-presentation
  namespace: kszk-kepzes-site
spec:
  selector:
    app: linux-presentation
  ports:
  - port: 80
    targetPort: 80
Original line number Diff line number Diff line
# 1. videó segédlet
# Linux alapok (1. videó segédlet)

## Mi is a Linux

@@ -198,7 +198,7 @@ Ne ijedjünk meg az ismeretlen fogalmaktól, erről mind lesz szó bővebben.
  - kapcsolók: programok különböző funkcióit
    lehet velük ki-be kapcsolni
  - pl:
    - `ls -la`: kilistáza a mostani mappa tartalmát
    - `ls -la`: kilistázza a mostani mappa tartalmát
      - `ls`: listázó program
      - `-l`: listaként jelenjen meg
      - `-a`: rejtett fájlokat is megjeleníti
@@ -218,9 +218,9 @@ Ne ijedjünk meg az ismeretlen fogalmaktól, erről mind lesz szó bővebben.
  - egy program kimenetét beleírja egy másik program bemenetébe
  - pl:
    - `ls -l *.txt | grep alma`:
      - `ls -l *.txt`: kíírja a jelenlegi mappában lévő
      - `ls -l *.txt`: kiírja a jelenlegi mappában lévő
        txt fájlok neveit, ez lesz a grep bemenete
      - `grep alma`: kiszűri a bementén kapott szövegből
      - `grep alma`: kiszűri a bemenetén kapott szövegből
        azokat a sorokat, amikben nem szerepel az alma szó
      - → kilistázza azokat a txt fájlokat, amelyek nevében
        szerepel az, hogy alma.
@@ -239,7 +239,7 @@ Ne ijedjünk meg az ismeretlen fogalmaktól, erről mind lesz szó bővebben.
  - terminál alján kiír pár támogatott billentyűkombinációt
  - használat:
    - `nano <fájl>`
    - írkáljunk
    - irkáljunk
    - `CTRL+S` ment
    - `CTRL+X` bezár
- `vi`: bonyolultabb picivel, de többet tud
@@ -248,7 +248,7 @@ Ne ijedjünk meg az ismeretlen fogalmaktól, erről mind lesz szó bővebben.
  - használat
    - `vim <fájl>`
    - `i` (insert mode)
    - írkáljunk
    - irkáljunk
    - `ESC` (normal mode)
    - `:wq` (parancs: write, quit)
  - a fejlettebb funkcióit nem mutatjuk most be
@@ -400,7 +400,7 @@ disztróspecifikus csomagkezelővel

<Note type="danger" label="Légy óvatos">

Itt szó lesz két azonos nevű, de különbőző dologról.
Itt szó lesz két azonos nevű, de különböző dologról.
- `root` user
- `root` mappa

@@ -556,7 +556,7 @@ drwxr-xr-x 2 mike daemon 40 Mar 11 13:37 negyedik
  - `r`: visszafelé rendezve

(ezt meg lehetne adni úgy is, hogy `ls -latr`,
de az olvashatóság kevéért mi külön vettük)  
de az olvashatóság kedvéért mi külön vettük)  

</details>

@@ -664,17 +664,17 @@ de az olvashatóság kevéért mi külön vettük)
### Jogosultságok megváltoztatása

Vannak különböző parancsok, melyek segítségével megváltoztathatjuk mind a user-ek,
mind a group-ok, mind a többi felhasználó jogosultságait, sőt megváltoztathajtuk a
mind a group-ok, mind a többi felhasználó jogosultságait, sőt megváltoztathatjuk a
tulajdonosokat is.

#### `chmod` 

Segítségével megváltoztathajtuk az állományok hozzáférési jogait (change mode).
Segítségével megváltoztathatjuk az állományok hozzáférési jogait (change mode).
Ha nem a saját fájljaink, mappáink jogait szeretnénk módosítani, ahhoz `sudo` is kell.

Ehhez megadjuk a `chmod` után, hogy kire vonatkozzon (user, group, others),
megadjuk, hogy hozzáférést szeretnénk-e adni vagy elvenni akarjuk azt, 
valamint magát az állományt. A különböző paramétérek a következőek:
valamint magát az állományt. A különböző paraméterek a következőek:


`u` 	- user, a birtokló user
@@ -701,7 +701,7 @@ Például:

Ugyanezen konvenció alapján működik mindegyik parancs.

Kicsit szemléletessebben:
Kicsit szemléletesebben:

```
patrik@ubuntu:~/Documents$ ls -la
@@ -734,11 +734,11 @@ a második változott meg, míg eddig egy `-` jel volt, vagyis nincs joga hozzá
most pedig `w` lett, vagyis van hozzá joga.

Ha egyszerre szeretnénk jogot adni a user-nek, group-nak, others-nek vagy elvenni,
valamint ha többféle joggal szeretnénk ezt, akkor több paramétért is megadhatunk egy parancsban.
valamint ha többféle joggal szeretnénk ezt, akkor több paramétert is megadhatunk egy parancsban.
Ezt kétféleképpen is megtehetjük:

 - `chmod` `u` `g` `o` közül a kiválaszottak `+` vagy `-` az `r` `w` `x` közül a
  kiválaszottak. Vagyis a bal oldalra írjuk kinek a jogait szeretnénk módosítani, 
 - `chmod` `u` `g` `o` közül a kiválasztottak `+` vagy `-` az `r` `w` `x` közül a
  kiválasztottak. Vagyis a bal oldalra írjuk kinek a jogait szeretnénk módosítani, 
  középre, hogy elvenni vagy adni szeretnénk, jobb oldalra pedig, hogy mely jogokat.

```
@@ -812,3 +812,30 @@ drwxr-xr-x 15 patrik patrik 4096 Mar 17 16:20 ..
patrik@ubuntu:~/Documents$
```

<Note type="tip" label="Tip">

A csoportot nem csak az előbbi `chgrp` paranccsal lehet módosítani, hanem
a `chown` paranccsal is.
Ehhez a következőt kell tenni:

`sudo chown username:groupname fájl`

```shell-session
patrik@ubuntu:~/Documents$ ls -la
total 8
drwxr-xr-x  2 patrik patrik 4096 Mar 19 19:18 .
drwxr-xr-x 15 patrik patrik 4096 Mar 17 16:20 ..
-rw-r-----  1 patrik patrik    0 Mar 18 19:38 pörkölt.txt
-rw-rw-r--  1 mike   mike      0 Mar 18 19:37 recept.txt
patrik@ubuntu:~/Documents$ sudo chown patrik:patrik recept.txt 
[sudo] password for patrik: 
patrik@ubuntu:~/Documents$ ls -la
total 8
drwxr-xr-x  2 patrik patrik 4096 Mar 19 19:18 .
drwxr-xr-x 15 patrik patrik 4096 Mar 17 16:20 ..
-rw-r-----  1 patrik patrik    0 Mar 18 19:38 pörkölt.txt
-rw-rw-r--  1 patrik patrik    0 Mar 18 19:37 recept.txt
patrik@ubuntu:~/Documents$
```

</Note>

nginx.conf

0 → 100644
+35 −0
Original line number Diff line number Diff line
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    
    root   /usr/share/nginx/html;

    location / {
        index  index.html index.htm;

         # kill cache
        add_header Last-Modified $date_gmt;
        add_header Cache-Control 'no-store, no-cache';
        if_modified_since off;
        expires off;
        etag off;
    }

    # Media: images, icons, video, audio, HTC
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
        expires 1M;
        access_log off;
        add_header Cache-Control "public";
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    error_page   404  /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }
}
+20 −26
Original line number Diff line number Diff line
@@ -3,46 +3,40 @@
## Pár szó

Mostani alkalomtól biztosítunk mindannyiótoknak
1-1 virtuális gépet, melyet az SCH belső hálózatáról
fogtok elérni.  
1-1 virtuális gépet,
Ezek a gépek a saját
[VMWare](https://en.wikipedia.org/wiki/VMware) klaszterünkben
[Proxmox](https://en.wikipedia.org/wiki/Proxmox_Virtual_Environment) klaszterünkben
futnak majd egészen a képzés végéig.

Specifikáció:

- Oprendszer: Ubuntu 20.04.2
- RAM: 1GB
- CPU: 1 Mag (AMD Opteron 6128 vagy AMD EPYC 7251 attól függ
  , hogy a klaszter mely gépén fut)
- Hálózat: belső hálózat, viszont a 80 és 443-as portra
  kilát

A gépre előre feltelepítettünk pár dolgot.
// TODO Lista

Végül pedig a gépeken a saját felhasználóinkat (mike, patrik) // TODO
beregisztráltuk rendszergazda hozzáféréssel, hogyha bármi lenne,
akkor könnyedén tudjunk segíteni.
- Oprendszer: Ubuntu 20.04
- RAM: 2GB
- CPU: 2 Mag (AMD Opteron 6128)

## Elérés

A gépet [SSH](második videó#távoli-hozzáférés-ssh) // TODO LINK
A gépet [SSH](szerver kezelés#távoli-hozzáférés-ssh)
-n keresztül tudod majd menedzselni, viszont csak
az SCH belső hálózatán.
Ahhoz, hogy elérd kívülről a gépet, be kell
SSH-zz először a publikus terminál szerverünkre
és onnan tovább.
A gépek egy belső hálón vannak, azonban van egy gép,
ami kívülről elérhetővé teszi őket, a kepzodok.sch.bme.hu.
Ezen a gépen különböző portokon éritek el a saját gépeteket.

Ennek menete:

```
$ ssh home.sch.bme.hu
...
Belépsz az SCH-s fiókoddal (SCHACC)
...
$ ssh 10.151.103.{ID}
$ ssh kepzodo@kepzodok.sch.bme.hu -p <kapott port>
...
Belépsz a Mattermoston található információkkal
Belépsz a Mattermoston kapott infókkal
...
```

Ha windowsról vagy hasonló a folyamat.
Nyiss egy Windows Terminált vagy egy parancssort vagy egy PowerShell-t,
és oda írd be ugyanezeket a parancsokat.

Ha Windows 7 vagy korábbi verzión vagy, akkor
a Putty nevezetű programot használva tudsz csatlakozni a gépedre.