ekzhang / sshx

Fast, collaborative live terminal sharing over the web

Home Page:https://sshx.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Permission Denied Error

Spartan09 opened this issue · comments

image Error
2024-01-01T07:55:37.418583Z ERROR sshx: status: PermissionDenied, message: "grpc-status header missing, mapped from HTTP status code 403", details: [], metadata: MetadataMap { headers: {"date": "Mon, 01 Jan 2024 07:55:38 GMT", "cache-control": "private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0", "expires": "Thu, 01 Jan 1970 00:00:01 GMT", "report-to": "{\"endpoints\":[{\"url\":\"https:\/\/a.nel.cloudflare.com\/report\/v3?s=I5MYTyX%2FD%2BkCv26TnLAykfds6I5Ljxr4QqJtlwguZKl9W4JuVqCMV5fCKoFWYMNI3irudiRfJsQMWTzYIwU56f7qNeiLrcIfiXXJs92571t9UgBBRfPIeCik\"}],\"group\":\"cf-nel\",\"max_age\":604800}", "nel": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}", "vary": "Accept-Encoding", "server": "cloudflare", "cf-ray": "83e9337c3958f425-BOM", "alt-svc": "h3=\":443\"; ma=86400"} }

Hey, thanks for the report. It looks like there's some issue where Cloudflare in front of sshx.io is providing a 403 status code. I haven't seen this before, are you possibly using a Cloudflare client proxy or VPN somewhere?

It might help to try running some commands like:

dig sshx.io
dig @1.1.1.1 sshx.io
ping sshx.io
curl -i https://sshx.io

Closing due to lack of details, unable to reproduce.

I built it from source, and it turns out I was missing the protobuf-compiler which I installed with apt-get and now it's working perfectly fine!
The curl script didn't warn me though it seems.

Thanks for the extra details.

I was kind of stuck in tutorial hell regarding learning Rust, so I was hoping you could point me in the general direction of trying to understand this codebase, that way I might get to familiarize myself with Rust language idioms and its ecosystem.
I can see that there are so many parts in this codebase, this is exactly the type of complexity I would like to be able to maneuver around. If I can replicate some of these functionalities at a small scale that would mean I would have learned so much.

Sure, why don't you read the book and then we can talk after you're more familiar with Rust?

Hi, sorry for the late reply, I have read the book till the smart pointers part. I am not yet familiar with the async part, I tried to read about it but it felt quite overwhelming, there is the Tokio way of doing things then there is the Rust std async way which is incomplete and that people just recommend sticking with learning Tokio instead. I am just aware that the event loop is used behind the scenes coming from JS background and I think that Tokio can also make use of multiple threads in the background while providing an async front. However, I am just saying these things that I have read and haven't worked actually with them in any capacity, starting a new project just paralyzes me hence the notion that diving into these complexities head-on under some guidance would resolve that.