Sage advice. This is really more suited to IRC but ssh is something everyone has readily available.
It has a much lower barried to entry.
Isn't a specific effort required to have [port] forwarding? I don't think anyone will do it accidentally, even were I nefarious.
In other words, if you don't know what "forwarding" is, then you don't have to worry.
Forwarding is not the default behavior, so normally you're fine.
For others, if you do this:
Host *
ForwardAgent yes
you can take this as a reminder that `Host *` is playing with fire, and just asking for accidents like this. Be extremely careful with `Host *` configs, especially with anything security-sensitive.
"Careful", as in "do not do it if there's literally any risk". And if you don't know for sure, consider it a risk by default. `Host *.internal` at a minimum, or whatever hostname / dns patterns are used around you, is dramatically safer and just as convenient.
Did you write a z-machine with sockets or is this piping to an existing one (frotz, etc?) I'm curious about the internals because I'm working on my own z-machine implementation too (not ssh though!)
:) Yes I'm piping to dumb-frotz. The ssh server is a custom golang server, not a 'real' ssh daemon.
Z-machine impl is fun (except for all the version differences)
There are quite a few edge cases going the pipe route since there is no defined communication protocol and every game expresses some things slightly differently.
I try to keep the code as generic as possible but nearly every game I try has had a surprise for me.
I really don't want to have tons of special cases in the code but I think some might be unavoidable.
If you're writing your own Z-machine, then you can write it in a way that plans for such integration and that would make a direct-linked approach much easier.
My 'ssh toy' has proven quite popular so far and I hope it has introduced IF to some new people.
Thanks and best of luck with your Z-Machine. Hacks and Glory await!
I'm sure you've read all the Graham Nelson Z-Machine specs etc.?
And seen the various alternative implementations like nitfol (which is a bit smaller than most and easier to read maybe)?
Yes! It's practically my bible now -- I even printed a copy through printme1.com so I can have a bound copy to flip back and forth through ( and dog-ear, tag pages, etc.) I reference other implementations and z-tools to gain insight on changes in memory, objects, etc.
I'm writing blog posts on my journey - detailing each instruction and any nuance with each one, as well as the object structure, z-text and misc. I hope to post it here one day.
Thanks. I played with this version (in a sandboxed VM) and it worked well. It really brought back memories. I was surprised how much I remembered about the game several decades later. Ahh those were the good old days :-)
I think the simplest answer to that is just to try it, if you haven't already.
Briefly, everyone connected is playing a single game of Zork (in this instance, tho any z-machine game will work). Like a chat session everyone can see every other player's commands/comments, and the game's output.
35 comments
[ 3.3 ms ] story [ 80.6 ms ] threadHere is an invitation to my "Guild" https://app.revolt.chat/invite/Xm9jmNDv
Maybe you have to sign up on the main page first, not sure. https://revolt.chat/
Of course, it's also possible to chat on the SSH server above, though maybe not as convenient. Either way is welcome.
[1]: https://book.hacktricks.xyz/linux-unix/privilege-escalation/...
Use a general non-identifiable id_rsa to play with public ssh servers.
For others, if you do this:
you can take this as a reminder that `Host *` is playing with fire, and just asking for accidents like this. Be extremely careful with `Host *` configs, especially with anything security-sensitive."Careful", as in "do not do it if there's literally any risk". And if you don't know for sure, consider it a risk by default. `Host *.internal` at a minimum, or whatever hostname / dns patterns are used around you, is dramatically safer and just as convenient.
I try to keep the code as generic as possible but nearly every game I try has had a surprise for me. I really don't want to have tons of special cases in the code but I think some might be unavoidable.
If you're writing your own Z-machine, then you can write it in a way that plans for such integration and that would make a direct-linked approach much easier.
My 'ssh toy' has proven quite popular so far and I hope it has introduced IF to some new people.
Thanks and best of luck with your Z-Machine. Hacks and Glory await!
I'm writing blog posts on my journey - detailing each instruction and any nuance with each one, as well as the object structure, z-text and misc. I hope to post it here one day.
Briefly, everyone connected is playing a single game of Zork (in this instance, tho any z-machine game will work). Like a chat session everyone can see every other player's commands/comments, and the game's output.
Just
Also, thanks and I think I must have missed the "SSH Toy" craze when it was popular.[1] https://r7st.guru/watchcdda/
Or type in
ssh -p 8080 -l magnetic magneticscrolls.net
I recently found your site via asciicinema and it was your site that inspired me to make this.
(The wheelbarrow is so annoying)