Problem: I want to remotely access my computer from untrusted computers like on friends house or at work.
Looking for: Remote desktop software (SSH is out of scope, as it could do commands in the background). Client should work in the browser or have portable binaries. Server should send some soft of 2FA before every connection without a way to remember it, so I could be safe in a case of a keylogger snooping on connection password. Not nessesary, but would be nice to have some sort of rate limiting for the inputs, so it won’t be possible for some rubber-ducky style script to open terminal and run command before I could react.
No, because with remote desktop (GUI or terminal) I would clearly see if something other than my instructions is being done. I would see someone else typing or moving stuff around. With SSH malware on the client device can open second session/tty and do things there or simply write a command very fast and click enter before I can react.
If you’re genuinely worried about this, you shouldn’t be using untrusted machines for remote access.
If you’re RDPing from a malicious client, how do you know what you’re seeing is real? How do you know that your viewer didn’t show the same screen for just a little too long while the host popped up a cmd, curl, run, close, continue in the background? How do you know that closing your session isn’t “forwarding it to someone else for a bit, but they’ll close it when they’re done”? One time you start a session, verify it with your phone, waiting waiting waiting, an error occurred try again. Did it fail, or did it go to someone else?
Malware attacking vulnerability in whatever third party software you end up using is far more likely. You can’t open a second tty with an existing SSH session, you’d have to authenticate again, which would require the 2FA. Using a GUI isn’t going to prevent “doing something very fast” and like I said you can rate limit ssh using nf/iptables if you think that’s helpful. I’m not sure what you are referring to when you say “terminal”, because that’s normally what is referred to as a tty.
All your concerns are true of remote x sessions and while I’m not familiar enough with Wayland to defend this claim, I’d bet they are true of remote Wayland sessions too.
The old way of doing a secure remote x session was by tunneling it through ssh. When I needed remote desktop reachable anywhere I used passwordless 2fa ssh as the tunnel.
How exactly were you planning on initiating this connection to the host machine from an untrusted client, using their binaries?