[{"data":1,"prerenderedAt":358},["ShallowReactive",2],{"project-8743374":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":44,"post_text":46,"what":47,"said":79,"maker_in_thread":198,"shape":206,"grid":209,"attempts":320,"same_week":321,"maker_shows":45,"maker_hidden":349,"reader_version":350,"card":351},"8743374","ssh-chat","ssh chat.shazow.net","title","Show HN: ssh chat.shazow.net",null,"shazow",1418427721,2014,171,45,129,2272,6,"notable","consumer_social","chat rooms","cli",[23,24,25,26],"ssh chat","irc over ssh","go ssh server","chatroom","curious",0.094,{"positive":30,"neutral":31,"mixed":32,"critical":33},8,18,0,5,31,{"idea":36,"privacy":38,"performance":39,"design":41,"execution":42,"docs":43},{"positive":30,"critical":37},1,{"positive":32,"critical":32},{"positive":32,"critical":40},2,{"positive":32,"critical":32},{"positive":32,"critical":40},{"positive":32,"critical":32},[32,33,45,32,45,45,32,45,32,45,32,33,32,33,32,37,32,45,32,33,45,45,32,32,32,37,45,45,37,45,45,45,45,33,37,37,33,45,32,33],3,"Hi HN,\n\nI wrote a custom SSH server in Go, give it a try. It uses your terminal user and SSH keys to authenticate implicitly. Instead of getting a shell, you get an IRC-style chatroom with everyone else.\n\n\n```\n  $ ssh chat.shazow.net\n\n```\n\nIf you're getting \"Permission denied (publickey)\", please use ssh-keygen to create a keypair. Instructions here: https:\u002F\u002Fhelp.github.com\u002Farticles\u002Fgenerating-ssh-keys\u002F\n\nSSH is a really cool protocol; it's a lot like HTTP2. This is a demo of one thing you can do with it, but I plan to factor out the code into libraries that will let you build all kinds of expe",{"problem":48,"audience":9,"pricing":9,"motivation":54,"time_to_build":58,"stack":64,"openness":76,"stage":77,"team_size":78},{"value":49,"source":50,"evidence":51},"Provides a login-free chatroom reachable with any SSH client, using SSH keys for identity.","maker",[52],{"id":53},"post",{"value":55,"source":50,"evidence":56},"Demo of what SSH can do; plans to factor code into libraries for building SSH experiences.",[57],{"id":53},{"value":59,"source":50,"evidence":60},"A couple of days on free time.",[61],{"id":62,"by":10,"text":63},"8744470","A not-so-subtle reminder to people who are \"curious\" and want to break things: It's open source. Install it locally and break it to your heart's content. If you're flooding the…",[65,72],{"value":66,"source":50,"evidence":67},"Go",[68,69],{"id":53},{"id":70,"by":10,"text":71},"8744115","It's using Go's crypto\u002Fssh from the standard library.",{"value":73,"source":50,"evidence":74},"Go crypto\u002Fssh standard library",[75],{"id":70,"by":10,"text":71},"open_source","beta","unknown",{"praise":80,"objections":108,"requests":136,"questions":155,"alternatives":177},[81,101],{"value":82,"source":83,"evidence":84},"Cool concept and nostalgic for IRC\u002Ftelechat\u002FBBS days.","commenter",[85,89,93,97],{"id":86,"by":87,"text":88},"8743637","codezero","Reminds me of the good old days of telechat. I was wondering if there was a way to set up a \"login\" free SSH server, glad someone else figured it out :)",{"id":90,"by":91,"text":92},"8744459","zifnab06","Reminds me of the old ircii days. Very basic client, I like it!",{"id":94,"by":95,"text":96},"8744746","chuckup","Add some ANSI color, a message board section, stir, and you've got a BBS! k-rad!",{"id":98,"by":99,"text":100},"8743609","Aloha","neat!",{"value":102,"source":83,"evidence":103},"Potential for sysadmin internal communication.",[104],{"id":105,"by":106,"text":107},"8744813","scrollaway","Awesome work. I love it. I really think that this sort of thing could be extremely useful in some specific cases, for example for internal communication from sysadmins in…",[109,121,128],{"value":110,"source":50,"evidence":111},"Server hangs and is flooded by spam; no spam controls.",[112,113,117],{"id":62,"by":10,"text":63},{"id":114,"by":115,"text":116},"8745477","jimnutt","Very interesting, although it seems to be broken at the moment. It connects and then just kind of hangs (connecting with the latest SSH client in arch). It's a cool concept though.",{"id":118,"by":119,"text":120},"8744819","medecau","Username \"dump\" flooded the server. Service is dead until restart.",{"value":122,"source":83,"evidence":123},"Keystrokes sent to server cause input lag.",[124],{"id":125,"by":126,"text":127},"8744081","mappu","Cool! Can you hook a full ncurses up to this? Going by my input lag, it looks like all keypresses are sent to the server, can you implement readline somehow or can i configure…",{"value":129,"source":83,"evidence":130},"Long lines wrap and get obscured by incoming messages.",[131,132],{"id":125,"by":126,"text":127},{"id":133,"by":134,"text":135},"8745338","yebyen",">> If i write a line that's longer than my terminal width, it wraps onto a second line, but new incoming messages obscure the first line > Yea, there's a bug with long line…",[137,141,148],{"value":138,"source":83,"evidence":139},"Add readline or local input buffering.",[140],{"id":125,"by":126,"text":127},{"value":142,"source":83,"evidence":143},"Support full ncurses interfaces.",[144,145],{"id":125,"by":126,"text":127},{"id":146,"by":10,"text":147},"8744122","> Can you hook a full ncurses up to this? Yup! Any ncurses thing should work great. I couldn't find a golang curses lib that doesn't hardcode to stdout except for…",{"value":149,"source":83,"evidence":150},"Add ANSI color and other features.",[151,152],{"id":94,"by":95,"text":96},{"id":153,"by":10,"text":154},"8744649","Here's a screenshot somebody took of it running on a Cathode terminal: https:\u002F\u002Ftwitter.com\u002Fshazow\u002Fstatus\u002F543587063765823490 We've had some pull requests since then which add…",[156,163,170],{"value":157,"source":83,"evidence":158},"How to exit the chat?",[159],{"id":160,"by":161,"text":162},"8744015","motyar","How to exit?",{"value":164,"source":83,"evidence":165},"Why are Permission denied errors occurring?",[166],{"id":167,"by":168,"text":169},"8744409","tux","This should be called \"SIRC\" ^_^ If anyone else has \"Permission denied\" run this command: ssh-keygen -t rsa -f ~\u002F.ssh\u002Fid_rsa",{"value":171,"source":83,"evidence":172},"Is SSH agent forwarding a privacy risk?",[173],{"id":174,"by":175,"text":176},"8744502","flac","A little warning: You should turn off SSH Agent Forwarding for this host. Otherwise it may use your SSH Keys to auth to other servers you connect to via SSH, e.g. GitHub git…",[178,189,194],{"value":179,"source":83,"evidence":180},"IRC",[181,185],{"id":182,"by":183,"text":184},"8744195","jensenbox","Why not tunnel IRC through this and get all the benefits of a seasoned IRC server?",{"id":186,"by":187,"text":188},"8744197","edibleEnergy","hah cool",{"value":190,"source":83,"evidence":191},"Telechat and BBS systems",[192,193],{"id":86,"by":87,"text":88},{"id":94,"by":95,"text":96},{"value":195,"source":50,"evidence":196},"Mosh for latency masking",[197],{"id":146,"by":10,"text":147},{"comments":199,"answered":45,"key":200},10,[201,202,205],{"id":62,"text":63},{"id":203,"text":204},"8744538","That sounds like a fun hack, thanks! Wonder if it will work, will play with it later. :) Do any clients have it on by default? (If you'd like to take my word for it, I have no…",{"id":146,"text":147},{"commenters":34,"max_depth":17,"maker_replies":199,"first_comment_mins":207,"lifespan_hours":208},55,19,[210,212,214,216,217,220,222,224,228,230,232,235,237,239,242,246,248,252,255,258,261,264,267,269,272,273,275,278,281,283,285,289,290,293,296,299,302,304,307,309,311,315,316,318],[62,32,32,211,10,37],"maker\u002Fneutral\u002Fnone",[105,32,33,213,106,32],"maker\u002Fpositive\u002Fidea",[174,37,45,215,175,32],"project\u002Fneutral\u002Fprivacy",[203,37,32,215,10,37],[218,37,45,215,219,32],"8744596","mercora",[125,40,45,221,126,32],"project\u002Fneutral\u002Fperformance",[146,40,32,223,10,37],"project\u002Fneutral\u002Fnone",[225,40,45,226,227,32],"8744323","project\u002Fneutral\u002Fdesign","Scaevolus",[229,40,32,226,10,37],"8744333",[231,40,45,226,227,32],"8744393",[233,40,45,226,234,32],"8744671","qcoh",[133,40,32,236,134,32],"other\u002Fneutral\u002Fexecution",[86,45,33,238,87,32],"project\u002Fpositive\u002Fidea",[240,45,32,241,10,37],"8743638","commenter\u002Fneutral\u002Fnone",[243,244,33,238,245,32],"8743557",4,"cmyr",[247,244,32,223,10,37],"8743570",[249,244,37,250,251,32],"8744156","project\u002Fcritical\u002Fexecution","kirillzubovsky",[253,244,32,254,10,37],"8744298","project\u002Fneutral\u002Fexecution",[256,244,45,221,257,32],"8745594","aksx",[259,244,32,260,10,37],"8745988","commenter\u002Fneutral\u002Fperformance",[262,244,33,238,263,32],"8743899","chatmasta",[265,33,45,223,266,32],"8744862","nathell",[268,33,45,223,266,32],"8744890",[270,17,45,223,271,32],"8744112","_RPM",[70,17,32,223,10,37],[274,17,32,241,271,32],"8744120",[276,17,32,241,277,32],"8744173","dsl",[114,279,37,280,115,32],7,"project\u002Fcritical\u002Fperformance",[282,279,45,221,257,32],"8745582",[167,30,45,284,168,32],"project\u002Fneutral\u002Fdocs",[286,287,37,250,288,32],"8744501",9,"tsmith",[160,199,45,284,161,32],[291,199,45,284,292,32],"8744035","gatehouse",[294,199,45,284,295,32],"8744160","kolev",[297,199,45,284,298,32],"8744320","limedaring",[300,199,45,284,301,32],"8744722","valleyer",[94,303,33,238,95,32],11,[182,305,37,306,183,32],12,"project\u002Fcritical\u002Fidea",[118,308,37,280,119,32],13,[90,310,33,238,91,32],14,[312,313,45,226,314,32],"8744643",15,"Kiro",[153,313,32,226,10,37],[98,317,33,238,99,32],16,[186,319,33,238,187,32],17,[],[322,327,331,336,340,344],{"id":323,"name":324,"points":325,"category":326},"8734307","Iota",221,"dev_tools",{"id":328,"name":329,"points":330,"category":326},"8735937","Gitfs",196,{"id":332,"name":333,"points":334,"category":335},"8745263","um-hn",180,"ai",{"id":337,"name":338,"points":339,"category":326},"8753369","PhantomJS Pad",120,{"id":341,"name":342,"points":343,"category":19},"8762455","things.gnod.com",96,{"id":345,"name":346,"points":347,"category":348},"8733976","TouchstoneJS",92,"languages",false,"v2",{"id":352,"name":5,"line":6,"ai":349,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":353,"top":17,"kw":354,"maker":10,"domain":355,"tier":18,"attempts":32,"strip":356,"url":-1,"mix":357,"praise":82,"objection":110,"sub":20},8743374,0.09,[23,24,25,26],"","0530330303050501030533000133133335115305",[30,31,32,33],1793990916768]