Tips en Trucs 2019

SSH chat

Beveiligd chatten kan eenvoudig zijn als je gebruik maakt van bestaande veilige verbindingen en een eenvoudig open source programma. Als beveiligde verbinding gebruikt het open source programma ssh-chat een SSH-verbinding. SSH is gespecialiseerd in het opzetten van veilige verbindingen, is door en door getest en gecontroleerd en wordt regelmatig voorzien met updates en upgrades.

Ssh-chat mogelijkheden

Ssh-chat installeren

Controleer de recentst beschikbare update op Github en pas de volgende download opdracht aan zodat je de meest recente versie download:

dany@pindabook:~> wget https://github.com/shazow/ssh-chat/releases/download/v1.8.2/ssh-chat-linux_amd64.tgz
--2019-05-04 14:58:59--  https://github.com/shazow/ssh-chat/releases/download/v1.8.2/ssh-chat-linux_amd64.tgz
Herleiden van github.com (github.com)... 140.82.118.3
Verbinding maken met github.com (github.com)|140.82.118.3|:443... verbonden.
HTTP-verzoek is verzonden; wachten op antwoord... 302 Found
Locatie: https://github-production-release-asset-2e65be.s3.amazonaws.com/27796175/27979080-69cc-11e9-9352-9776a8fd9683?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190504%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190504T125900Z&X-Amz-Expires=300&X-Amz-Signature=ba099babd96956d3ec982229248afdc54bb6792fbe825b2385662d0938e87fa5&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dssh-chat-linux_amd64.tgz&response-content-type=application%2Foctet-stream [volgen...]
--2019-05-04 14:59:00--  https://github-production-release-asset-2e65be.s3.amazonaws.com/27796175/27979080-69cc-11e9-9352-9776a8fd9683?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190504%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190504T125900Z&X-Amz-Expires=300&X-Amz-Signature=ba099babd96956d3ec982229248afdc54bb6792fbe825b2385662d0938e87fa5&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dssh-chat-linux_amd64.tgz&response-content-type=application%2Foctet-stream
Herleiden van github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.100.235
Verbinding maken met github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.100.235|:443... verbonden.
HTTP-verzoek is verzonden; wachten op antwoord... 200 OK
Lengte: 6121740 (5,8M) [application/octet-stream]
Wordt opgeslagen als: ‘ssh-chat-linux_amd64.tgz’

ssh-chat-linux_amd64.tgz     100%[==============================================>]   5,84M  4,30MB/s    in 1,4s    

2019-05-04 14:59:01 (4,30 MB/s) - '‘ssh-chat-linux_amd64.tgz’' opgeslagen [6121740/6121740]

Pak de gedownloade software uit:

dany@pindabook:~> tar -xvf ssh-chat-linux_amd64.tgz
ssh-chat/
ssh-chat/LICENSE
ssh-chat/README.md
ssh-chat/ssh-chat

Open de map met de uitgepakte ssh-chat software:

dany@pindabook:~> cd ssh-chat

Start de ssh-chat software:

dany@pindabook:~/ssh-chat> ./ssh-chat
Couldn't read private key: failed to load identity: open /home/dany/.ssh/id_rsa: no such file or directory

Ssh-chat werkt met een private sleutel om de server te identificeren en deze is niet aanwezig. Je maakt een sleutelpaar aan met de opdracht:

dany@pindabook:~/ssh-chat> ssh-keygen -t rsa -b 3072
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dany/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/dany/.ssh/id_rsa.
Your public key has been saved in /home/dany/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:bLZxR+lCRAZbVCZeHw8gU/cN566+enrfxAhB5D15COw dany@pindabook.pindanet.home
The key's randomart image is:
+---[RSA 3072]----+
|        .+X=X.= .|
|         * O.* @.|
|        . o.= * *|
|       . . oE. + |
|        S o +   .|
|       o + o . + |
|        .     o o|
|             .o..|
|            o=ooo|
+----[SHA256]-----+

Daarbij werd alle invoer beantwoord met een druk op de Return-toets waardoor de sleutels in de standaard bestanden en mappen werden opgeslagen en er geen wachtzin (passphrase) gebruikt wordt. Daarna proberen we opnieuw de ssh-chat software te starten:

dany@pindabook:~/ssh-chat> ./ssh-chat
Listening for connections on [::]:2022

Gelukt.

Chatten

Start een nieuwe terminal en meld je aan bij de SSH chatserver op poort 2022 (zie uitvoer hierboven):

dany@pindabook:~> ssh localhost -p 2022
The authenticity of host '[localhost]:2022 ([::1]:2022)' can't be established.
RSA key fingerprint is SHA256:bLZxR+lCRAZbVCZeHw8gU/cN566+enrfxAhB5D15COw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:2022' (RSA) to the list of known hosts.
 * dany joined. (Connected: 1)
[dany] 

Start een derde terminal en meld je opnieuw aan als root gebruiker:

dany@pindabook:~> ssh root@localhost -p 2022
 * dany joined. (Connected: 1)
 * root joined. (Connected: 2)
[root]

Aan de aangepaste prompt ([gebruiker]) merkt je dat je bij de chat server aangemeld bent. Schakel terug over naar de tweede terminal en typ het een chatbericht gevolgd door Return. Het chatbericht verschijnt in de derde terminal bij de root gebruiker (alle gebruikers). Typ je in de derde terminal een bericht als root gebruiker, dan verschijnt dit bij alle andere aangemelde gebruikers, dus ook in de tweede terminal:

dany@pindabook:~> ssh localhost -p 2022
The authenticity of host '[localhost]:2022 ([::1]:2022)' can't be established.
RSA key fingerprint is SHA256:bLZxR+lCRAZbVCZeHw8gU/cN566+enrfxAhB5D15COw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:2022' (RSA) to the list of known hosts.
 * dany joined. (Connected: 1)
 * root joined. (Connected: 2)
[dany] Hallo, ik ben Dany
root: Hallo, ik ben de systeembeheerder
[dany]
dany@pindabook:~> ssh root@localhost -p 2022
 * dany joined. (Connected: 1)
 * root joined. (Connected: 2)
dany: Hallo, ik ben Dany
[root] Hallo, ik ben de systeembeheerder
[root]

Wil je weten wie er allemaal is aangemeld:

root: Hallo, ik ben de systeembeheerder
[dany] /names
-> 2 connected: dany, root

Chatopdrachten zoals /names beginnen dus steeds met een slash. Wil je de systeembeheerder een compliment geven, zonder dat de anderen dit zien, stuur je een privébericht:

[dany] /msg root Dany, je bent een kei!!!
-> [Sent PM to root]

Wil je meer informatie over een gebruiker opvragen:

[dany] /whois root
-> name: root
 > fingerprint: SHA256:bLZxR+lCRAZbVCZeHw8gU/cN566+enrfxAhB5D15COw=
 > client: SSH-2.0-OpenSSH_7.6
 > joined: 7 minutes ago

Wil je een overzicht van de chatopdrachten weergeven:

[dany] /help
-> Available commands:
/exit                      - Exit the chat.
/ignore [USER]             - Hide messages from USER, /unignore USER to stop hiding.
/msg USER MESSAGE          - Send MESSAGE to USER.
/names                     - List users who are connected.
/nick NAME                 - Rename yourself.
/quiet                     - Silence room announcements.
/reply MESSAGE             - Reply with MESSAGE to the previous private message.
/theme [colors|...]        - Set your color theme.
/timestamp [time|datetime] - Prefix messages with a timestamp. You can also provide the UTC offset: /timestamp time +5h45m
/whois USER                - Information about USER.

Schakel terug over naar de derde terminal en verlaat de chatroom:

[root] /exit
[root] Connection to localhost closed by remote host.
Connection to localhost closed.
dany@pindabook:~>

Tot nu toe hebben we ssh-chat getest op één computer (localhost). Wil je echter vanaf een andere computer chatten, dan moet je poort 2022 in de firewall van de computer waarop de ssh-chat draait, openen:

dany@pindabook:~> sudo firewall-cmd --add-port=2022/tcp
[sudo] wachtwoord voor root: 
success
Firewall

Start een terminal op een andere computer in hetzelfde netwerk en meld je aan bij de chatroom:

dany@main:~> ssh pindabook -p 2022
The authenticity of host '[pindabook]:2022 ([192.168.1.6]:2022)' can't be established.
RSA key fingerprint is SHA256:bLZxR+lCRAZbVCZeHw8gU/cN566+enrfxAhB5D15COw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[pindabook]:2022' (RSA) to the list of known hosts.
 * dany joined. (Connected: 1)
 * root joined. (Connected: 2)
dany: Hallo, ik ben Dany
root: Hallo, ik ben de systeembeheerder
dany: whois root
root: exit
 * root left. (After 10 minutes)
 * Guest2 joined. (Connected: 2)
[Guest2]

Als alle gebruikers de chatroom hebben verlaten, stop je ssh-chat opdracht met een druk op de sneltoets Ctrl+c:

Listening for connections on [::]:2022
^CInterrupt signal detected, shutting down.
dany@pindabook:~/ssh-chat>

Wie nog verder wil gaan kan een publieke chatserver op het internet opzetten, maar zorg dan wel dat je weet waaraan je begint, qua veiligheid, enz. Publieke ssh-chat servers kan je vinden op de Github pagina.

Ssh-chat