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
2.1k
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
730
3次元メッシュで表現した結晶構造を用いた材料物性の予測に向けた深層学習モデルの設計 / Design of Deep Learning Model for Predicting Material Properties Using Crystal Structure Represented by Three-Dimensional Mesh
tsurubee
1
2k
分散システムの性能異常に対する機械学習の解釈性に基づく原因診断手法 / A Method for Diagnosing the Causes of Performance Issues in Distributed Systems Based on the Interpretability of Machine Learning
tsurubee
0
1.3k
機械学習の解釈性に関する研究動向とシステム運用への応用 / A Survey on Interpretable Machine Learning and Its Application for System Operation
tsurubee
0
300
機械学習モデルの局所的な解釈に着目したシステムにおける異常の原因診断手法の構想
tsurubee
0
7.7k
アニーリングマシンを活用したエッジAIにおける 生成モデルの学習効率化のためのアーキテクチャ
tsurubee
0
1.4k
さくらインターネット研究所で研究に再挑戦した私の半年間の取り組み
tsurubee
1
2.8k
さくらインターネット研究所と鶴田の取り組みのご紹介
tsurubee
0
110
sshr: ユーザに変更を要求せずにシステム変化に追従可能なSSHプロキシサーバ
tsurubee
3
3k
Other Decks in Programming
See All in Programming
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
760
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
910
テスト自動化失敗から再挑戦しチームにオーナーシップを委譲した話/STAC2024 macho
ma_cho29
1
1.3k
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
3
700
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
1
440
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
930
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
fs2-io を試してたらバグを見つけて直した話
chencmd
0
230
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
200
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Scaling GitHub
holman
458
140k
GraphQLとの向き合い方2022年版
quramy
44
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
A designer walks into a library…
pauljervisheath
204
24k
Agile that works and the tools we love
rasmusluckow
328
21k
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ϓϩΩγΛհͨ͠ެ։伴ೝূηογϣϯ*%ͷؔͰஈ֊ ʹެ։伴ೝূΛ͢Δඞཁ͕͋Δ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ʂʂ