[{"data":1,"prerenderedAt":371},["ShallowReactive",2],{"project-10686581":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":62,"maker_in_thread":181,"shape":193,"grid":197,"attempts":327,"same_week":335,"maker_shows":311,"maker_hidden":364,"reader_version":365,"card":366},"10686581","Ssh2","Ssh2, simplifying EC2 ssh'ing","title","Show HN: Ssh2, simplifying EC2 ssh'ing","https:\u002F\u002Fgithub.com\u002Fsoheil\u002Fssh2","github.com","soheil",1449435586,2015,51,50,554,2565,22,"notable","dev_tools","ssh client helper","cli",[24,25,26,27],"ssh","ec2","aws","instances","mixed",-0.22,{"positive":31,"neutral":32,"mixed":33,"critical":34},1,11,4,8,24,{"execution":37,"docs":40,"idea":41,"privacy":42,"design":43},{"positive":38,"critical":39},0,3,{"positive":38,"critical":38},{"positive":31,"critical":33},{"positive":38,"critical":31},{"positive":38,"critical":38},[39,39,38,39,38,31,31,31,39,38,38,31,39,39,39,31,38,38,38,31,39,38,38,45,38,39,38,39,38,38,38,38,39,38,38,39,38,38,38,31],5,null,{"problem":46,"audience":46,"pricing":46,"motivation":46,"time_to_build":46,"stack":48,"openness":61,"stage":61,"team_size":61},[49],{"value":50,"source":51,"evidence":52},"Python","inferred",[53,57],{"id":54,"by":55,"text":56},"10686775","justinsaccount","Nice idea, but needs a bit of refactoring: hardcoded paths like '\u002Ftmp\u002F.ssh2_list' should not be used. This is insecure and wouldn't work on (most) multi user systems. Something…",{"id":58,"by":59,"text":60},"10687851","jessedhillon","Since this is Python, you can use the built-in tempfile module to securely create\u002Fdelete temporary files https:\u002F\u002Fdocs.python.org\u002F2\u002Flibrary\u002Ftempfile.html Additionally, a feature…","unknown",{"praise":63,"objections":86,"requests":122,"questions":140,"alternatives":158},[64,75],{"value":65,"source":66,"evidence":67},"Useful idea for temporary EC2 instances","commenter",[68,72],{"id":69,"by":70,"text":71},"10687577","vacri","If your servers are 'permanent', then give them a short hostname and put them in your .ssh\u002Fconfig and DNS (or hosts file). 'ssh cron' or 'ssh archive' and connecting directly is…",{"id":73,"by":11,"text":74},"10687859","I made it primarily for my temp servers, it's also useful if you keep restarting a box as the DNS name changes on reboot. As someone else also mentioned I think a nice addition…",{"value":76,"source":66,"evidence":77},"Good tool concept",[78,82],{"id":79,"by":80,"text":81},"10686725","josefdlange","Pack this up and get it on PyPI! Nice simple little script but quite inconvenient to get onto a system, especially if one prefers using package managers.",{"id":83,"by":84,"text":85},"10686863","jamiesonbecker","Nice work! Consider something like mkstemp() or mkdtemp() instead (really, it should be marked 'insecure' until updated.)…",[87,102,107],{"value":88,"source":66,"evidence":89},"Name ssh2 clashes with the SSH protocol version name",[90,94,98],{"id":91,"by":92,"text":93},"10686819","rascul","The name is confusing. https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSecure_Shell#Version_2.x",{"id":95,"by":96,"text":97},"10687011","asveikau","Nobody does a quick Google search for name clashes these days? \"ssh2\" is the name of the protocol, to distinguish from SSH protocol 1.0.",{"id":99,"by":100,"text":101},"10687008","voltagex_","Agreed, ECSSH2 is either a convoluted replacement or a nice play on both technologies depending on how you look at it... although that could be confused with ECDSA - naming…",{"value":103,"source":66,"evidence":104},"Hardcoded \u002Ftmp path is insecure",[105,106],{"id":54,"by":55,"text":56},{"id":83,"by":84,"text":85},{"value":108,"source":66,"evidence":109},"Existing ~\u002F.ssh\u002Fconfig already solves this",[110,114,118],{"id":111,"by":112,"text":113},"10688100","dajohnson89","Yeah that's what I do too. How is ssh2 any better? Especially considering (IIRC) that tab-complete works for ~\u002F.ssh\u002Fconfig .",{"id":115,"by":116,"text":117},"10687291","rhapsodyv","Very useful. I'm currently using ~\u002F.ssh\u002Fconfig. I gave nickname for the servers and all parameters are in the config: ``` Host my-foo HostName 54.xx.xx.xx User my_user…",{"id":119,"by":120,"text":121},"10691259","Shorel","I was about to post the same. ~\u002F.ssh\u002Fconfig with identity files (certs) is the right way to ssh. And ssh config entries can be used in other software, for example I use them in mc.",[123,129,133],{"value":124,"source":66,"evidence":125},"Match on instance name instead of index number",[126,127,128],{"id":54,"by":55,"text":56},{"id":58,"by":59,"text":60},{"id":73,"by":11,"text":74},{"value":130,"source":66,"evidence":131},"Package on PyPI",[132],{"id":79,"by":80,"text":81},{"value":134,"source":135,"evidence":136},"VPC support","maker",[137],{"id":138,"by":11,"text":139},"10690079","Thanks for clarifying the reboot sequence, I do, however, stop\u002Fstart instances on a regular basis to save cost. Also good to know VPC behaves differently in that respect. I'm…",[141,151],{"value":142,"source":66,"evidence":143},"Why use this instead of DNS names for instances",[144,148],{"id":145,"by":146,"text":147},"10686862","deathanatos","I'm curious: why would I use this over just assigning DNS names to the instances?",{"id":149,"by":100,"text":150},"10686988","DNS names where? How long does it take for the updates to get to whatever resolver you're using?",{"value":152,"source":66,"evidence":153},"Where are SSH private keys stored",[154],{"id":155,"by":156,"text":157},"10686792","setheron","What stores the SSH private keys ? I hate having to manage my private keys across work machines.",[159,166,174],{"value":160,"source":66,"evidence":161},"ish by grahamc",[162],{"id":163,"by":164,"text":165},"10686709","grhmc","A related tool, I wrote ish: https:\u002F\u002Fgithub.com\u002Fgrahamc\u002Fish which lets you log in to a machine by name, tag, instance ID, AMI, etc.",{"value":167,"source":66,"evidence":168},"Hand-written ~\u002F.ssh\u002Fconfig entries",[169,170],{"id":115,"by":116,"text":117},{"id":171,"by":172,"text":173},"10688519","reacweb","I have all my servers listed in my .ssh\u002Fconfig file with nice short names. With a simple alias on the command \"grep -A1 '^H' .ssh\u002Fconfig | grep -v '--'\", I can display the full…",{"value":175,"source":66,"evidence":176},"moltar",[177],{"id":178,"by":179,"text":180},"10687148","dwb","This is my take on this: uses a tagging convention on your EC2 instances. Can also run commands in parallel over a set of instances. https:\u002F\u002Fgithub.com\u002Fmadebymany\u002Fmoltar…",{"comments":182,"answered":38,"key":183},7,[184,187,190],{"id":185,"text":186},"10687015","Just made those changes, will update the tmp path.",{"id":188,"text":189},"10693596","Took care of this, thanks for the tip.",{"id":191,"text":192},"10686749","Good point, I was thinking about it, decided blur looked better. For more important things I will start using an opaque color. Thanks for the \u002Ftmp tip.",{"commenters":194,"max_depth":33,"maker_replies":182,"first_comment_mins":195,"lifespan_hours":196},33,29,199,[198,200,203,205,207,210,211,213,215,216,219,223,227,229,231,235,238,241,245,249,252,254,257,258,259,262,265,268,269,272,275,278,279,280,282,285,286,288,289,292,294,295,299,301,304,309,313,318,320,325],[54,38,39,199,55,38],"project\u002Fmixed\u002Fexecution",[201,38,39,202,100,38],"10686983","maker\u002Fneutral\u002Fdocs",[185,38,38,204,11,31],"maker\u002Fpositive\u002Fexecution",[58,38,39,206,59,38],"project\u002Fneutral\u002Fexecution",[208,38,39,206,209,38],"10688586","drdaeman",[188,38,38,204,11,31],[95,31,31,212,96,38],"project\u002Fcritical\u002Fidea",[91,214,31,212,92,38],2,[99,214,31,212,100,38],[217,214,39,218,209,38],"10688593","project\u002Fneutral\u002Fidea",[220,39,39,221,222,38],"10686707","maker\u002Fneutral\u002Fprivacy","wyldfire",[224,39,38,225,226,38],"10686748","commenter\u002Fneutral\u002Fprivacy","ams6110",[228,39,38,225,55,38],"10686781",[191,39,38,230,11,31],"maker\u002Fpositive\u002Fprivacy",[232,39,31,233,234,38],"10687084","project\u002Fcritical\u002Fexecution","Hello71",[236,39,39,206,237,38],"10687453","lobster_johnson",[239,39,39,206,240,38],"10688070","LukeShu",[242,39,39,243,244,38],"10687479","project\u002Fneutral\u002Fdocs","calgoo",[246,39,31,247,248,38],"10687350","maker\u002Fcritical\u002Fprivacy","aidos",[250,39,31,233,251,38],"10687361","throwaway2048",[163,33,38,253,164,38],"other\u002Fneutral\u002Fidea",[255,33,38,256,59,38],"10687861","other\u002Fpositive\u002Fidea",[115,45,38,253,116,38],[111,45,31,212,112,38],[260,45,38,253,261,38],"10688431","jon-wood",[263,45,39,264,116,38],"10688935","maker\u002Fneutral\u002Fnone",[266,45,38,267,261,38],"10690936","other\u002Fneutral\u002Fnone",[119,45,38,253,120,38],[83,270,45,271,84,38],6,"project\u002Fpositive\u002Fidea",[273,270,38,274,11,31],"10735836","maker\u002Fpositive\u002Fnone",[276,182,38,253,277,38],"10686712","rusbus",[145,34,39,218,146,38],[149,34,38,253,100,38],[281,34,38,253,146,38],"10687901",[69,283,39,284,70,38],9,"project\u002Fmixed\u002Fidea",[73,283,38,218,11,31],[287,283,38,267,70,38],"10689349",[138,283,38,264,11,31],[290,283,38,253,291,38],"10690205","soccerdave",[178,293,38,253,179,38],10,[79,32,39,199,80,38],[296,297,38,298,291,38],"10690182",12,"other\u002Fneutral\u002Fperformance",[171,300,38,253,172,38],13,[155,302,39,303,156,38],14,"project\u002Fneutral\u002Fprivacy",[305,306,39,307,308,38],"10687118",15,"project\u002Fmixed\u002Fdesign","wahnfrieden",[310,311,38,253,312,38],"10688206",16,"haosdent",[314,315,38,316,317,38],"10686871",17,"other\u002Fneutral\u002Fprivacy","krat0sprakhar",[319,315,38,316,248,38],"10687363",[321,322,31,323,324,38],"10688184",18,"maker\u002Fcritical\u002Fexecution","viraptor",[326,322,38,264,11,31],"10693602",[328,329,332],{"id":4,"t":12,"points":14,"comments":15},{"id":330,"t":331,"points":33,"comments":38},"11119312",1455728902,{"id":333,"t":334,"points":33,"comments":38},"11877207",1465573701,[336,341,346,351,355,360],{"id":337,"name":338,"points":339,"category":340},"10706203","Jukedeck",410,"creative",{"id":342,"name":343,"points":344,"category":345},"10676685","Acme-tiny",280,"infrastructure",{"id":347,"name":348,"points":349,"category":350},"10690834","Lasergist.com",211,"web_saas",{"id":352,"name":353,"points":354,"category":345},"10685946","Nchan",149,{"id":356,"name":357,"points":358,"category":359},"10703851","Adblock to Bitcoin",128,"security_privacy",{"id":361,"name":362,"points":363,"category":359},"10682971","Lego",93,false,"v2",{"id":367,"name":5,"line":6,"ai":364,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":368,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":369,"url":9,"mix":370,"praise":65,"objection":88,"sub":21},10686581,[24,25,26,27],"3303011130013331000130050303000030030001",[31,32,33,34],1794036538333]