Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GolangでSSHプロキシサーバを実装した
Search
tsurubee
October 04, 2018
Programming
2
2k
GolangでSSHプロキシサーバを実装した
https://blog.tsurubee.tech/entry/2018/09/01/181634
tsurubee
October 04, 2018
Tweet
Share
More Decks by tsurubee
See All by tsurubee
DeepCrysTet: A Deep Learning Approach Using Tetrahedral Mesh for Predicting Properties of Crystalline Materials
tsurubee
0
390
3次元メッシュで表現した結晶構造を用いた材料物性の予測に向けた深層学習モデルの設計 / Design of Deep Learning Model for Predicting Material Properties Using Crystal Structure Represented by Three-Dimensional Mesh
tsurubee
1
1.6k
分散システムの性能異常に対する機械学習の解釈性に基づく原因診断手法 / A Method for Diagnosing the Causes of Performance Issues in Distributed Systems Based on the Interpretability of Machine Learning
tsurubee
0
1.1k
機械学習の解釈性に関する研究動向とシステム運用への応用 / A Survey on Interpretable Machine Learning and Its Application for System Operation
tsurubee
0
240
機械学習モデルの局所的な解釈に着目したシステムにおける異常の原因診断手法の構想
tsurubee
0
7.1k
アニーリングマシンを活用したエッジAIにおける 生成モデルの学習効率化のためのアーキテクチャ
tsurubee
0
1.2k
さくらインターネット研究所で研究に再挑戦した私の半年間の取り組み
tsurubee
1
2.6k
さくらインターネット研究所と鶴田の取り組みのご紹介
tsurubee
0
88
sshr: ユーザに変更を要求せずにシステム変化に追従可能なSSHプロキシサーバ
tsurubee
3
2.7k
Other Decks in Programming
See All in Programming
Let's learn code review
riofujimon
2
620
Exploring Type-Informed Lint Rules in Rust based Linters
unvalley
2
240
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
2
220
VS Code をプロダクトにどう取り込むか
onomax
1
790
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.7k
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
2
190
2024 コーディング研修
ckazu
0
470
Deep Dive into React Stream/Serialize
mugi_uno
3
760
WebGLで始める コンピュータグラフィックス入門
heller77
0
360
Criando a Woovi em uma semana
daniloab
0
110
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
150
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
350
Featured
See All Featured
Docker and Python
trallard
35
2.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
80
44k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Infographics Made Easy
chrislema
238
18k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
Six Lessons from altMBA
skipperchong
22
3k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Facilitating Awesome Meetings
lara
43
5.6k
Transcript
!UTVSVCFF(.01FQBCP *OD 'VLVPLBHP (PMBOHͰ44)ϓϩΩγαʔό Λ࣮ͨ͠
ࣗݾհ (.0ϖύϘגࣜձࣾ ϗεςΟϯάࣄۀ෦ ΠϯϑϥνʔϜ ాതจ !UTVSVCFF (PMBOH݄͔Β ࢝Ί·ͨ͠ʂ
ࠓ͢͜ͱ w44)ϓϩτίϧͷ֓ཁ w44)ϓϩΩγαʔόΛ։ൃͨ͠എܠ w44)ϓϩΩγαʔόͷ࣮ʹ͍ͭͯ
w4FDVSF4IFMMͷུশ wΫϥΠΞϯτrαʔόؒʹ͓͚Δ௨৴ͷ҆શੑΛ֬อ͢Δ ͨΊͷϓϩτίϧ 44)$MJFOU 44)4FSWFS &ODSZQU %FDSZQU ಁաతͳ҉߸ܦ࿏Λఏڙͯ͘͠ΕΔ
44)ɿ֓ཁ
44)ɿಁաతͳ௨৴ ಁաతʜ࣮ࡍʹଘࡏ͢ΔͷΛଘࡏ͠ͳ͍Α͏ʹݟͤΔ 44)ϢʔβԿҙࣝͤͣͱ௨৴͕҆શʹ҉߸Խɾ ෮߸Խ͞Ε͍ͯΔ ͢ͳΘͪɺ44)Λී௨ʹར༻͢Δ্ͰͦͷΈΛ ϓϩτίϧϨϕϧͰཧղ͢Δඞཁͳ͍
ಁաతͳ௨৴Λఏڙͯ͘͠ΕΔϓϩτίϧʹҙਤతʹ ׂͬͯೖͬͯɺͦͷڍಈΛࣗ༝ʹίϯτϩʔϧ͢Δ
$MJFOU 4FSWFS wϩάΛऔಘ͍ͨ͠ʢ౷ܭతʹղੳɾϦΞϧλΠϜҟৗݕ FUDʣ UDQEQɺ1SPYZ42- wϑοΫΛΈࠐΜͰৼΔ͍Λಈతʹίϯτϩʔϧ͍ͨ͠ QGUQɺTTIS ྫ͑ɾɾ ύέοτͷಡΈࠐΈ ϓϩτίϧͷղऍ
QBDLFU IPPLTDSJQU ϑοΫʹΑΔϩδοΫͷ ֦ுಈత੍ޚ ϓϩτίϧͷॲཧʹׂͬͯೖΔ
TTISͱ͍͏44)ϓϩΩγαʔόΛ࡞ͬͯ·͢ʂ IUUQTCMPHUTVSVCFFUFDIFOUSZ
ͳͥTTISΛ࡞ͬͨͷ͔ʁ
Ϧιʔεϓʔϧ wֹ݄ԁ͔Βར༻Ͱ͖Δʂ wͷཧαʔόͷϦιʔεΛෳͷϢʔβʹఏڙ͢Δʢڞ༻αʔόʣ UTVSVCFF Ϩϯλϧαʔόʔ EFW ෳͷϢʔβͷίϯςϯπ͕ ϩʔΧϧετϨʔδʹ ஔ͞Ε͍ͯΔ TTI
TTI TTI TTI TTI TTIUTVSVCFF!TTI TTIEFW!TTI Ϣʔβ༻Ͱ͖Δαʔό͕ TTIͩͱ͍ͬͯΔඞཁ͕͋Δ ϢʔβͱͦͷϢʔβ͕༻͢Δαʔόͷඥ͚͕ଘࡏ͢Δ
αʔόఏڙऀଆͷطଘͷ՝ TTIUTVSVCFF!TTI Ϧιʔεϓʔϧ 44)$MJFOU TTI TTI TTI TTI TTI w༻αʔό͕มΘͬͨࡍʹϢʔβʹ௨͕ඞཁ
wαʔόཧऀͷ߹Ͱࣗ༝ʹϢʔβ͕͏αʔόΛมߋͰ͖ͳ͍ Ϣʔβ UTVSVCFFTTIʹ ҙࣝతʹଓ͍ͯ͠Δ UTVSVCFFͷίϯςϯπΛ TTIʹҠઃ͍ͨ͠
ϢʔβͱαʔόͷஔΛ࠷దԽ͠ɺ ͞Βʹշదͳαʔόڥͷఏڙ ϢʔβͷίϯςϯπҠઃͷোนΛ ۃݶ·ͰԼ͛Δ
wϢʔβ໊ϕʔεͰಈతʹଓઌΛܾఆͰ͖Δ wϑοΫʹΑΓϩδοΫΛࣗ༝ʹΈࠐΊΔFUD TTISɿϢʔβ͕ଓઌΛҙࣝ͠ͳ͍ϓϩΩγαʔό IUUQTHJUIVCDPNUTVSVCFFTTIS
TTIUTVSVCFF!TTIS Ϧιʔεϓʔϧ 44)ΫϥΠΞϯτ TTIS 1MVHHBCMF )PPLT Ϣʔβ TTISಋೖޙͷੈք
TTIUTVSVCFF!TTIS Ϧιʔεϓʔϧ 44)ΫϥΠΞϯτ TTIS 1MVHHBCMF )PPLT Ϣʔβ TTISಋೖޙͷੈք Ϣʔβ໊
TTIUTVSVCFF!TTIS Ϧιʔεϓʔϧ 44)ΫϥΠΞϯτ TTIS 1MVHHBCMF )PPLT Ϣʔβ TTISಋೖޙͷੈք Ϣʔβ໊ ଓઌϗετ
Ϣʔβͱଓઌϗετͷඥ͚Λ%#ͰҰݩཧ
TTIUTVSVCFF!TTIS Ϧιʔεϓʔϧ 44)ΫϥΠΞϯτ TTIS 1MVHHBCMF )PPLT Ϣʔβ TTISಋೖޙͷੈք Ϣʔβ໊ ଓઌϗετ
Ϣʔβͱଓઌϗετͷඥ͚Λ%#ͰҰݩཧ 44)ΛϓϩΩγ
TTIUTVSVCFF!TTIS Ϧιʔεϓʔϧ 44)ΫϥΠΞϯτ Ϣʔβ໊ ଓઌϗετ TTIS 1MVHHBCMF )PPLT 44)ΛϓϩΩγ Ϣʔβͱଓઌϗετͷඥ͚Λ%#ͰҰݩཧ
Ϣʔβ TTISಋೖޙͷੈք %#ͷ6QEBUFʹΑΓࣗಈͰϢʔβͷଓઌ͕ΓସΘΔ
TTISΛͬͯΈΔͱʜ $ ssh
[email protected]
-p 2222
[email protected]
's password: [tsurubee@host-tsurubee ~]$
$ ssh
[email protected]
-p 2222
[email protected]
's password: [dev@host-dev ~]$ ࣮ߦ͢ΔίϚϯυʮϢʔβ໊ʯҎ֎ಉ͕ͩ͡ɺ ҧ͏αʔόʹ44)ϩάΠϯ͞ΕΔ
TTISͷ࣮ʹ͍ͭͯ
·ͣɺϓϩτίϧΛΔͨΊʹ3'$ΛಡΉ w3'$ɿ44)"VUIFOUJDBUJPO1SPUPDPM Ϣʔβೝূʢύεϫʔυೝূެ։伴ೝূʣ w3'$ɿ44)5SBOTQPSU-BZFS1SPUPDPM τϥϯεϙʔτ w3'$ɿ44)$POOFDUJPO1SPUPDPM νϟωϧ੍ޚϙʔτϑΥϫʔσΟϯά 44)ɺෳͷಠཱͨ͠ϓϩτίϧͰߏ͞ΕΔ
44)ϓϩτίϧͷ֊ߏ $MJFOU 4FSWFS 44)$0// 3'$ 44)"65) 3'$ 44)53"/4 3'$ ௨৴ͷ҉߸Խ
ηογϣϯ伴ͷަ Ϣʔβೝূ νϟωϧͷଟॏԽ *OUFSOFU wϓϩτίϧͷશମ૾ͷѲॲཧͷྲྀΕΛ௫Ή͜ͱ͕େ w44)ϓϩΩγαʔόΫϥΠΞϯταʔόͷؒʹׂͬͯೖͬͯɺ ҉߸Խ͞ΕͨτϥϯεϙʔτΛհ͢Δඞཁ͕͋Δ
44)ηογϣϯཱ֬·ͰͷྲྀΕ 5$1ίωΫγϣϯͷཱ֬ ύϥϝʔλωΰγΤʔγϣϯ ηογϣϯ伴ަ ϗετೝূʢαʔόೝূʣ
Ϣʔβೝূ 44)ηογϣϯͷཱ֬
TTISͷॲཧͷྲྀΕ $MJFOU TTIS 44)ϦΫΤετ
TTISͷॲཧͷྲྀΕ $MJFOU TTIS 44)ϦΫΤετ τϥϯεϙʔτͷ҉߸Խ ύϥϝʔλωΰγΤʔγϣϯ %)伴ަ
TTISͷॲཧͷྲྀΕ $MJFOU TTIS 44)ϦΫΤετ τϥϯεϙʔτͷ҉߸Խ ύϥϝʔλωΰγΤʔγϣϯ %)伴ަ 'JOE6QTUSFBN)PPL
TTISͷॲཧͷྲྀΕ $MJFOU TTIS 44)ϦΫΤετ τϥϯεϙʔτͷ҉߸Խ ύϥϝʔλωΰγΤʔγϣϯ %)伴ަ 'JOE6QTUSFBN)PPL 4FSWFS
TTISͷॲཧͷྲྀΕ $MJFOU TTIS 44)ϦΫΤετ τϥϯεϙʔτͷ҉߸Խ ύϥϝʔλωΰγΤʔγϣϯ %)伴ަ 'JOE6QTUSFBN)PPL 4FSWFS τϥϯεϙʔτͷ҉߸Խ
҉߸Խ͞ΕͨτϥϯεϙʔτͷίωΫγϣϯཱ֬
TTISͷॲཧͷྲྀΕ 4FSWFS $MJFOU TTIS 44)ϦΫΤετ τϥϯεϙʔτͷ҉߸Խ τϥϯεϙʔτͷ҉߸Խ 'JOE6QTUSFBN)PPL ϢʔβೝূʹΑΔΫϥΠΞϯτͷਖ਼ੑ֬ೝ ҉߸Խ͞ΕͨτϥϯεϙʔτͷίωΫγϣϯཱ֬
ύϥϝʔλωΰγΤʔγϣϯ %)伴ަ
TTISͷॲཧͷྲྀΕ 4FSWFS $MJFOU TTIS 44)ϦΫΤετ τϥϯεϙʔτͷ҉߸Խ τϥϯεϙʔτͷ҉߸Խ 'JOE6QTUSFBN)PPL ϢʔβೝূʹΑΔΫϥΠΞϯτͷਖ਼ੑ֬ೝ ҉߸Խ͞ΕͨτϥϯεϙʔτͷίωΫγϣϯཱ֬
ύϥϝʔλωΰγΤʔγϣϯ %)伴ަ ೝূΛͲ͏Δ͔ ͕ʂ
Ϣʔβೝূͷ࣮ʹ ۤ͠Μͩɾɾ
ϓϩΩγΛհͨ͠Ϣʔβೝূ TTISೝূϝοηʔδͷύέοτΛͦͷ··αʔόʹ͠ɺ αʔό͔ΒͷϨεϙϯεΛͦͷ··ΫϥΠΞϯτʹฦ͢ 4FSWFS $MJFOU TTIS ೝূϦΫΤετ ೝূϨεϙϯε
ϓϩΩγΛհͨ͠Ϣʔβೝূ TTISೝূϝοηʔδͷύέοτΛͦͷ··αʔόʹ͠ɺ αʔό͔ΒͷϨεϙϯεΛͦͷ··ΫϥΠΞϯτʹฦ͢ 4FSWFS $MJFOU TTIS ύεϫʔυೝূ ⭕ ೝূϦΫΤετ ೝূϨεϙϯε
ϓϩΩγΛհͨ͠Ϣʔβೝূ TTISೝূϝοηʔδͷύέοτΛͦͷ··αʔόʹ͠ɺ αʔό͔ΒͷϨεϙϯεΛͦͷ··ΫϥΠΞϯτʹฦ͢ 4FSWFS $MJFOU TTIS ύεϫʔυೝূ ެ։伴ೝূ ⭕ ❌
ೝূϦΫΤετ ೝূϨεϙϯε
ެ։伴ೝূɿηογϣϯ*% $MJFOUTTISؒͱTTIS4FSWFSؒҟͳΔηογϣϯ*%Λ͍࣋ͬͯΔ 4FSWFS $MJFOU TTIS ηογϣϯ*%YYY ηογϣϯ*%ZZZ ஈ֊ͷެ։伴ೝূ͕ඞཁ τϥϯεϙʔτͷ҉߸Խ 伴ަ࣌ʹηογϣϯ͝ͱʹ
Ұҙͳηογϣϯ*%͕ੜ͞ Εɺσδλϧॺ໊ʹΘΕΔ
ެ։伴ೝূɿTTISͷ߹ 4FSWFS $MJFOU TTIS ެ։伴ͷొ֬ೝ ʢ$IFDL1VCMJD,FZ)PPLʣ LFZ" LFZ# ൿີ伴ʹΑΔॺ໊ ʢ'FUDI1SJWBUF,FZ)PPLʣ
w$MJFOUTTISؒͱTTIS4FSWFSؒผͷΩʔϖΞͰެ։伴ೝূΛߦ͏ wެ։伴ͷొ֬ೝൿີ伴ʹΑΔॺ໊ϑοΫʹΑΓࣗ༝ʹ֦ுͰ͖Δ
·ͱΊ wಁաతͳ௨৴Λఏڙͯ͘͠ΕΔϓϩτίϧʹҙਤతʹׂͬͯ ೖΔ͜ͱͰɺͦͷڍಈΛࣗ༝ʹίϯτϩʔϧͰ͖Δ wTTISʹΑͬͯϢʔβ͕ଓઌΛҙࣝͤͣɺϢʔβ໊ϕʔεͰ ಈతʹଓઌΛಛఆͰ͖ΔΑ͏ʹͳΔ wϓϩΩγΛհͨ͠ެ։伴ೝূηογϣϯ*%ͷؔͰஈ֊ ʹެ։伴ೝূΛ͢Δඞཁ͕͋Δ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ʂʂ