ekzhang / sshx

Fast, collaborative live terminal sharing over the web
https://sshx.io
MIT License
5.99k stars 188 forks source link

Permission Denied Error #64

Closed Spartan09 closed 10 months ago

Spartan09 commented 11 months ago
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"} }
ekzhang commented 11 months ago

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
ekzhang commented 10 months ago

Closing due to lack of details, unable to reproduce.

Spartan09 commented 10 months ago

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.

ekzhang commented 10 months ago

Thanks for the extra details.

Spartan09 commented 10 months ago

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.

ekzhang commented 10 months ago

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

Spartan09 commented 10 months ago

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.