diff --git a/README.md b/README.md
index 245ad167ffb8764eb4044402fd11716983f96ed4..387062b823fec945de40d5a135a0009c72ed2916 100644
--- a/README.md
+++ b/README.md
@@ -241,3 +241,32 @@ aminek a kikért payload osztályát kell megadnunk (`packet[TCP]`).
 - Eredményként írassuk ki a kapott válaszok source portját (`.sport` attribútum), azaz a nyitott portokat, 
 amelyekről érkezett válasz.
 
+## 4. Feladat - Kötelezően választható (1 db) - IMSc plusz feladat (+2 pont) 
+
+Az alábbi feladatok közül **csak egyet** kell kötelezően megoldani a mérés során, mely szabadon választható.
+
+**IMSc pont szerezhető mindkét feladat megoldásával!**
+
+## 4.a Feladat - Minimál SSH kliens 
+
+**Feladat:** Írjunk Python szkriptet `ssh_client.py` néven, amely egy minimális, interaktív SSH klienst valósít meg. 
+Az SSH kapcsolat kezeléséhez használjuk a `pxssh` modult, amit a `pexpect` csomag részeként tudunk telepíteni. 
+Érdemes megnézni a [`pxssh`](https://pexpect.readthedocs.io/en/stable/api/pxssh.html#pxssh-classl%22) dokumentációját.
+
+- [`ssh_client.py.txt`](https://qosip.tmit.bme.hu/foswiki/pub/Meres/PythonFeladatok/ssh_client.py.txt2): 
+Skeleton fájl a 4. feladathoz - Nevezd át! 
+
+- A scriptet NE indítsuk rendszergazdai jogosultsággal!
+- SSH szerver címét indítási paraméterként adjuk meg!
+- Felhasználónév/jelszó párost kérjük be a konzolról interaktív módon! Jelszó biztonságos bekérésére használjuk a
+`getpass` modul `getpass()` függvényét, ami nem jeleníti meg a leütött karaktereket!
+- Az SSH kapcsolatot kezelő objektum a `pxssh()` függvénnyel kérhető ki, amin a `login()` függvényt meghívva 
+csatlakozhatunk az SSH szerverhez. **Példakód az SSH kapcsolatot kezelő osztály dokumentációjában található!**
+- Kezeljük a hibás kapcsolódásnál felmerülő kivételeket/hibákat!
+- Az interaktív konzolt a prompt-tal együtt a konzolról olvasással valósítsuk meg egy kvázi végtelen ciklusban.
+- `q`/`Q` karakterekre, illetve CTRL+C kombinációra lépjünk ki! Ne felejtsük el ekkor bontani a kapcsolatot!
+- A begépelt parancsokat folyamatosan, az előző parancsokat megőrizve mentsük el a saját ssh.log fájlunkba.
+- A laborban lévő image-ek nagy valószínűséggel futtatnak SSH szervert, amivel tesztelhetjük a kliensünket:
+  - Hoszt: localhost
+  - Felhasználó: vagrant
+  - Jelszó: vagrant 
diff --git a/metadata.yaml b/metadata.yaml
index b268ab9a43dc140e15195b24bbb336b88f143f23..6885a8f9a4a6c6816c38ffb17d55f842697a2152 100644
--- a/metadata.yaml
+++ b/metadata.yaml
@@ -1,6 +1,6 @@
 title: Python mérés
 subtitle: Infokomm labor 1
-author: Réthelyi Bálint
+author: Réthelyi Bálint - IZUM0B
 geometry: margin=2cm
 lang: hu-HU
 output: pdf_document
\ No newline at end of file
diff --git a/solutions/2_feladat.md b/solutions/2_feladat.md
index a9fc5f166a4804c965a87a5233f481481a0de312..577b34dbb42bba9b9d88679af30119a6b8a03d46 100644
--- a/solutions/2_feladat.md
+++ b/solutions/2_feladat.md
@@ -97,4 +97,6 @@ $ ./mirror_stat.py  # don't need sudo priv for this in a modern system
  'ftp.us.debian.org': 0.20902609825134277,
  'ftp2.de.debian.org': 0.020498037338256836,
  'ftp2.fr.debian.org': 0.02599787712097168}
-```
\ No newline at end of file
+```
+
+Sikeresen megpingettem a mirror szervereket, ezeket ki is listáztam.
\ No newline at end of file
diff --git a/solutions/3_feladat.md b/solutions/3_feladat.md
index ed47d86d439aee5439f9eb791062e8c8925eb2e7..0a65633e69e0acdb28d91be0eb4aab8fbbf2f28d 100644
--- a/solutions/3_feladat.md
+++ b/solutions/3_feladat.md
@@ -49,6 +49,8 @@ $ nc localhost 9999
 Mon Mar  7 17:56:58 2022
 ```
 
+Látható, hogy sikeresen megkaptam az aktuális időt.
+
 ## 3.b Feladat - Port szkenner
 
 **Feladat:** Valósítsunk meg egy port szkanner funkciót, amely egy megadott hoszton ("www.google.hu") 
@@ -105,3 +107,5 @@ Received 251 packets, got 2 answers, remaining 1021 packets
 443
 >>> 
 ```
+
+Látható, hogy a "www.google.hu"-nak a 80-as és a 443-as portja van nyitva.
\ No newline at end of file
diff --git a/solutions/4_feladat.md b/solutions/4_feladat.md
new file mode 100644
index 0000000000000000000000000000000000000000..dbd99d637e8f36e497e4bcf5af44be4ddbaae7be
--- /dev/null
+++ b/solutions/4_feladat.md
@@ -0,0 +1,78 @@
+# 4.a Feladat - Minimál SSH kliens 
+
+**Feladat:** Írjunk Python szkriptet `ssh_client.py` néven, amely egy minimális, interaktív SSH klienst valósít meg. 
+
+A forrás fájl:
+
+```python
+#!/usr/bin/env python3
+
+import getpass
+import argparse
+from pexpect import pxssh
+
+
+def connect(host, port=22):
+    username = input("Add meg a felhasználónevedet: ")
+    passwd = getpass.getpass("Add meg a jelszavadat a távoli gépre: ")
+    try:
+        s = pxssh.pxssh()
+        s.login(host, username, passwd, port=port)
+    except pxssh.ExceptionPxssh as e:
+        print("Connection refused!")
+        return
+    print("SSH connection is established!")
+    while True:
+        try:
+            print("$ ", end='')
+            cmd = input()
+            if cmd in ['q', 'Q']:
+                break
+            s.sendline(cmd)
+            s.prompt()
+            print(s.before.decode('utf-8'))
+        except KeyboardInterrupt:
+            break
+    s.logout()
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--host", default="localhost")
+    parser.add_argument("--port", default="22")
+    args = parser.parse_args()
+    connect(args.host, args.port)
+
+```
+
+Futtatás:
+
+```bash
+$ chmod +x ssh_client.py
+$ ./ssh_client.py --host hermes.sch.bme.hu
+Add meg a felhasználónevedet: blint
+Add meg a jelszavadat a távoli gépre: 
+SSH connection is established!
+$ ls -lah
+ls -lah
+total 72K
+drwxr-xr-x 8 blint blint   15 Mar  7 21:44 .
+drwxr-xr-x 8 root  root     8 Nov 21 10:41 ..
+drwx------ 3 blint blint    3 Mar  4 21:10 .ansible
+-rw------- 1 blint blint 9.4K Mar  7 21:48 .bash_history
+-rw-r--r-- 1 blint blint  220 May  1  2021 .bash_logout
+-rw-r--r-- 1 blint blint 3.8K Jan 17 22:20 .bashrc
+drwx------ 2 blint blint    3 May  1  2021 .cache
+drwx------ 3 blint blint    3 Mar  7 21:44 .config
+drwxrwxr-x 3 blint blint    3 May  1  2021 .local
+-rw-r--r-- 1 blint blint  807 May  1  2021 .profile
+-rw------- 1 blint blint    0 Aug 11  2021 .psql_history
+-rw-rw-r-- 1 blint blint 6.7K Jan 17 22:20 .shellfishrc
+drwx------ 2 blint blint    5 Mar  4 21:42 .ssh
+-rw-r--r-- 1 blint blint    0 May  1  2021 .sudo_as_admin_successful
+drwxrwxr-x 7 blint blint    7 Jun 15  2021 test
+
+$ q
+```
+
+A programot a saját szerveremen teszteltem.
\ No newline at end of file
diff --git a/ssh_client.py b/ssh_client.py
new file mode 100755
index 0000000000000000000000000000000000000000..d0a234e370c9f3e15f2c79f6e71b8568514dc06a
--- /dev/null
+++ b/ssh_client.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+import getpass
+import argparse
+from pexpect import pxssh
+
+
+def connect(host, port=22):
+    username = input("Add meg a felhasználónevedet: ")
+    passwd = getpass.getpass("Add meg a jelszavadat a távoli gépre: ")
+    try:
+        s = pxssh.pxssh()
+        s.login(host, username, passwd, port=port)
+    except pxssh.ExceptionPxssh as e:
+        print("Connection refused!")
+        return
+    print("SSH connection is established!")
+    while True:
+        try:
+            print("$ ", end='')
+            cmd = input()
+            if cmd in ['q', 'Q']:
+                break
+            s.sendline(cmd)
+            s.prompt()
+            print(s.before.decode('utf-8'))
+        except KeyboardInterrupt:
+            break
+    s.logout()
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--host", default="localhost")
+    parser.add_argument("--port", default="22")
+    args = parser.parse_args()
+    connect(args.host, args.port)