Mystic BBS on Ubuntu 20.04: SSH - No matching cipher found. reddit / bbs ---------------------------------------------------------------------- ianfreakingb · 2023-08-30 01:39 Hello all! This week I decided to try my hand at operating a BBS for the first time. I decided to try out Mystic BBS on my Ubuntu 20.04 server and I was able to install it and compile Cryptlib according to the Wiki. However, I am having an issue when trying to connect to it remotely via SSH. I observe from Mystic's server panel a connection attempt from my home computer, but it gets refused due to "no matching cipher found." I attempted to connect with verbosity and noticed in the output that Mystic offers aes128-cbc, aes256-cbc, and 3des-cbc, which of course my client (standard SSH preinstalled in Ubuntu) refuses. I know my server can support stronger, more up-to-date ciphers as I can successfully connect on OpenSSH on a different port. Also, I should point out that I can successfully connect to Mystic via telnet, but I would ultimately like to just use SSH for the security. Is there a way to configure Cryptlib so that it can utilize compatible ciphers, or do I need to recompile it a different way? I just joined the subreddit, so I hope it is alright I ask this question. I have been searching on Google to no avail. Any help would be greatly appreciated! If it helps, below is the full output from the command `ssh -vvv @`: @:~$ ssh -vvv @ OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files debug1: /etc/ssh/ssh_config line 21: Applying options for * debug2: resolve_canonicalize: hostname is address debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home//.ssh/known_hosts' debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home//.ssh/known_hosts2' debug3: ssh_connect_direct: entering debug1: Connecting to [] port 22. debug3: set_sock_tos: set socket 3 IP_TOS 0x10 debug1: Connection established. debug1: identity file /home//.ssh/id_rsa type -1 debug1: identity file /home//.ssh/id_rsa-cert type -1 debug1: identity file /home//.ssh/id_ecdsa type -1 debug1: identity file /home//.ssh/id_ecdsa-cert type -1 debug1: identity file /home//.ssh/id_ecdsa_sk type -1 debug1: identity file /home//.ssh/id_ecdsa_sk-cert type -1 debug1: identity file /home//.ssh/id_ed25519 type -1 debug1: identity file /home//.ssh/id_ed25519-cert type -1 debug1: identity file /home//.ssh/id_ed25519_sk type -1 debug1: identity file /home//.ssh/id_ed25519_sk-cert type -1 debug1: identity file /home//.ssh/id_xmss type -1 debug1: identity file /home//.ssh/id_xmss-cert type -1 debug1: identity file /home//.ssh/id_dsa type -1 debug1: identity file /home//.ssh/id_dsa-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.3 debug1: Remote protocol version 2.0, remote software version cryptlib debug1: compat_banner: no match: cryptlib debug2: fd 3 setting O_NONBLOCK debug1: Authenticating to :22 as '' debug1: load_hostkeys: fopen /home//.ssh/known_hosts2: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory debug3: order_hostkeyalgs: no algorithms matched; accept original debug3: send packet: type 20 debug1: SSH2_MSG_KEXINIT sent debug3: receive packet: type 20 debug1: SSH2_MSG_KEXINIT received debug2: local client KEXINIT proposal debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh- sha2-nistp256,ecdh-sha2-nistp384,ecdh- sha2-nistp521,sntrup761x25519-sha512@openssh.com,diffie-hellman-group- exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman- group18-sha512,diffie-hellman-group14-sha256,ext-info-c debug2: host key algorithms: ssh- ed25519-cert-v01@openssh.com,ecdsa- sha2-nistp256-cert-v01@openssh.com,ecdsa- sha2-nistp384-cert-v01@openssh.com,ecdsa- sha2-nistp521-cert-v01@openssh.com,sk-ssh- ed25519-cert-v01@openssh.com,sk-ecdsa- sha2-nistp256-cert-v01@openssh.com,rsa- sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh- ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa- sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa- sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256 debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128- ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256- gcm@openssh.com debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128- ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256- gcm@openssh.com debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac- sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac- sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac- sha2-256,hmac-sha2-512,hmac-sha1 debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac- sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac- sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac- sha2-256,hmac-sha2-512,hmac-sha1 debug2: compression ctos: none,zlib@openssh.com,zlib debug2: compression stoc: none,zlib@openssh.com,zlib debug2: languages ctos: debug2: languages stoc: debug2: first_kex_follows 0 debug2: reserved 0 debug2: peer server KEXINIT proposal debug2: KEX algorithms: diffie-hellman-group-exchange- sha256,diffie-hellman-group-exchange-sha1,diffie-hellman- group14-sha256,diffie-hellman-group14-sha1 debug2: host key algorithms: rsa-sha2-256,ssh-rsa debug2: ciphers ctos: aes128-cbc,aes256-cbc,3des-cbc debug2: ciphers stoc: aes128-cbc,aes256-cbc,3des-cbc debug2: MACs ctos: hmac-sha2-256,hmac-sha1 debug2: MACs stoc: hmac-sha2-256,hmac-sha1 debug2: compression ctos: none debug2: compression stoc: none debug2: languages ctos: debug2: languages stoc: debug2: first_kex_follows 0 debug2: reserved 0 debug1: kex: algorithm: diffie-hellman-group-exchange-sha256 debug1: kex: host key algorithm: rsa-sha2-256 Unable to negotiate with port 22: no matching cipher found. Their offer: aes128-cbc,aes256-cbc,3des-cbc ---------------------------------------------------------------------- badweather · 2023-08-30 02:04 I've ran in to this before. You need to specify to your client to allow for the server's offered cipher. You can use a -c flag to try one of the ones listed: ssh -c 3des-cbc user@host ---------------------------------------------------------------------- SqualorTrawler · 2023-08-30 02:27 The workaround by /u/badweather will work but it would be optimal, for cryptlib to support modern ssh ciphers. You're not alone with this issue; it's nothing you've done wrong. ---------------------------------------------------------------------- ianfreakingb · 2023-08-30 02:41 That workaround will do for now. Thank you! ---------------------------------------------------------------------- ianfreakingb · 2023-08-30 02:43 Reassuring that I'm not the only one with this issue. Interesting how a relatively up-to-date library like cryptlib would be as lacking as it is in this department. I appreciate your reply. ---------------------------------------------------------------------- UCN_cyberstrator · 2023-09-02 17:35 Just a reminders there is a MysticBBS sub... ---------------------------------------------------------------------- BananaSlug888 · 2023-12-14 19:36 cryptlib does support modern ssh ciphers like RSA! and Synchronet uses it, and it works! Mystic needs to change its code, perhaps a single enum to \`\`CRYPT\_ALGO\_RSA\`\`. Not sure why Mystic is using a vulnerable and disabled cipher. ---------------------------------------------------------------------- BananaSlug888 · 2023-12-14 19:37 Don't do that if you care much about your data. It's difficult, but there is some very tiny amount of data leak possible with -cbc algorithms. cryptlib does support modern ssh ciphers like RSA! and Synchronet uses it, and it works! Mystic needs to change its code, perhaps a single enum to \`\`CRYPT\_ALGO\_RSA\`\`. Not sure why Mystic is using a vulnerable and disabled cipher. ---------------------------------------------------------------------- SqualorTrawler · 2023-12-14 21:09 Yeah it's suboptimal, but it is not clear to me other than passwords to log in, how much private comms are used on any BBS, or whether anyone would expend any time hammering on outdated ciphers...to do nasty things on a BBS. I agree with you though -- I want this updated.