sshr: ユーザに変更を要求せずにシステム変化に追従可能なSSHプロキシサーバ

5381bd68abe2b91239ca1600db2a890d?s=47 tsurubee
December 06, 2019

sshr: ユーザに変更を要求せずにシステム変化に追従可能なSSHプロキシサーバ

5381bd68abe2b91239ca1600db2a890d?s=128

tsurubee

December 06, 2019
Tweet

Transcript

  1. ͘͞ΒΠϯλʔωοτגࣜձࣾ (C) Copyright 1996-2019 SAKURA Internet Inc ͘͞ΒΠϯλʔωοτݚڀॴ sshr: ϢʔβʹมߋΛཁٻͤͣʹ

    γεςϜมԽʹ௥ैՄೳͳSSHϓϩΩγαʔό 2019/12/06 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢ϜʢIOTS 2019ʣ ɹ௽ా തจɼদຊ ྄հ ͘͞ΒΠϯλʔωοτגࣜձࣾ ͘͞ΒΠϯλʔωοτݚڀॴ
  2. 2 1. എܠͱ໨త 2. طଘख๏ͱͦͷ՝୊ 3. ఏҊख๏ 4. ੑೳධՁͱߟ࡯ 5.

    ·ͱΊ ໨࣍
  3. 1. എܠͱ໨త

  4. 4 มԽ͕ٻΊΒΕΔITΠϯϑϥ • WebαʔϏεͷΑ͏ͳΠϯλʔωοτΛհͯ͠ར༻͢ΔαʔϏε͕ੈͷதʹීٴ ͠ɼͦͷར༻ऀ਺͕૿େ͍ͯ͠Δɽ • WebαʔϏεΛࢧ͑ΔΠϯϑϥ͸ɼར༻ऀ͔Βͷଟ༷ͳཁٻ΍؀ڥͷมԽ౳ʹ Ԡͯ͡ɼਝ଎͔ͭॊೈʹγεςϜߏ੒Λมߋ͢Δ͜ͱ͕ٻΊΒΕΔɽ ཁٻɾ؀ڥͷมԽ γεςϜଆͷରԠྫ

    ΞΫηε਺ͷ૿ݮ αʔόͷεέʔϧΞ΢τɾεέʔϧΠϯ ސ٬χʔζͷมԽ αʔϏεͷػೳ֦ுͷͨΊͷ৽نαʔόಋೖ ϋʔυ΢ΣΞো֐ αʔόͷϚΠάϨʔγϣϯ
  5. 5 ssh username@<hostname or IP> SSH Client • αʔϏε΁ͷଟ༷ͳཁٻʹԠͯ͡γεςϜߏ੒Λਝ଎ʹมߋ͍ͯ͘͜͠ͱ͕ٻΊΒ ΕΔঢ়گʹ͓͍ͯ͸ɼγεςϜͷӡ༻؅ཧ΋มߋʹ௥ैͰ͖Δඞཁ͕͋Δɽ

    • Ұํɼ҆શͳϦϞʔτ઀ଓαʔϏεͱͯ͠αʔό؅ཧʹ޿͘ར༻͞Ε͍ͯΔSSH ͸ɼϢʔβ͕ར༻͢ΔαʔόͷIPΞυϨε·ͨ͸ϗετ໊Λࢦఆͯ͠઀ଓཁٻΛૹΔ ࢓૊ΈͰ͋Δɽ มԽʹ௥ैͰ͖Δӡ༻؅ཧ ͜͜ͰͷϢʔβͱ͸ɼγεςϜ಺ͷಛఆͷαʔό౳ͷϦιʔεΛ࢖༻͢Δऀ ɾγεςϜͷ؅ཧऀɾ։ൃऀ ɾϗεςΟϯάαʔϏεͷར༻ऀɼetc. Ϣʔβ มߋ Server Server αʔόͷIPΞυϨεɾ ϗετ໊ͷมߋͳͲ Ϣʔβ͕มߋޙͷ৘ใ Λ஌Δඞཁ͕͋Δ
  6. 6 SSHʹ͓͚Δ՝୊ͱຊݚڀͷ໨త • SSHͰ઀ଓ͢ΔαʔόͷIPΞυϨε΍ϗετ໊ʹมߋ͕͋ͬͨ৔߹ɼ؅ཧऀ͸֤ Ϣʔβ΁มߋޙͷ৘ใΛ஌ΒͤΔඞཁ͕͋ΓɼϢʔβ͸ͦͷมߋʹ௥ै͠ͳ͚ Ε͹ͳΒͳ͍ɽ • ্هͷ՝୊Λղܾ͠ɼSSHͷϢʔβ͕γεςϜͷߏ੒΍ͦͷมߋΛҙࣝ͢Δ͜ͱ ͳ͘ɼಁաతʹ໨తͷαʔόʹ઀ଓ͕Մೳͳ࢓૊ΈΛ࣮ݱ͢Δ͜ͱ͕ຊݚڀͷ ໨తͰ͋Δɽ

  7. 2. طଘख๏ͱͦͷ՝୊

  8. 8 طଘख๏ͷ෼ྨ γεςϜͷߏ੒มߋʹ௥ै͢Δ໾ׂΛͲ͕͜୲͏͔ʹΑΓҎԼͷ2ͭʹ෼ྨͰ͖Δɽ 1. ΫϥΠΞϯτπʔϧ 2. ϓϩΩγαʔό SSH αʔό ϓϩΩγ

    αʔό ؅ཧσʔλ SSH ΫϥΠΞϯτ SSH αʔό ؅ཧσʔλ ᶃ ᶄ ᶃ ᶄ ᶅ ྫ: gcloudίϚϯυ , consult ྫ: SSHPiper , sshdͷ֦ு SSHϦΫΤετ͝ͱʹৗʹ࠷৽ʹอͨΕͨγεςϜͷߏ੒৘ใ౳Λอ࣋͢Δ؅ཧσʔλ Λࢀর͢Δ͜ͱͰมߋʹ௥ै͢Δɽ SSH ΫϥΠΞϯτ SSHΫϥΠΞϯτ͕͍࣋ͬͯΔ ԿΒ͔ͷΩʔ৘ใΛݩʹ؅ཧ σʔλΛݕࡧ͠ɼ઀ଓ͢΂͖ SSHαʔόͷ৘ใΛऔಘ͢Δɽ
  9. 9 1. ΫϥΠΞϯτπʔϧ gcloudίϚϯυ • gcloud͸GCP্ͷϦιʔεΛૢ࡞͢Δओཁͳ ίϚϯυϥΠϯπʔϧ • ʮgcloud compute

    sshʯίϚϯυʹΠϯελϯε໊Λࢦఆ͢Δ͜ͱͰɼର৅ͷΠϯελϯεʹ SSH઀ଓ͕Մೳ • ssh(1)ίϚϯυͷϥούʔͰ͋ΓɼSSHͷϦΫΤετΛૹΔલʹΠϯελϯε໊ΛΩʔʹGCP ͕؅ཧ͍ͯ͠Δߏ੒৘ใ͔ΒIPΞυϨεΛऔಘ͢ΔػೳΛ༗͍ͯ͠Δɽ • Ϣʔβ͸ࣗ਎Ͱఆٛͨ͠αʔό͝ͱʹҰҙͷΠϯελϯε໊Λ஌͍ͬͯΕ͹ɼର৅αʔόͷIP ΞυϨεͷ৘ใ΍ͦͷมߋΛҙࣝ͢Δ͜ͱͳ͘ಁաతʹSSH઀ଓ͕ՄೳͰ͋Δɽ SSH ΫϥΠΞϯτ SSH αʔό ؅ཧσʔλ ᶃ ᶄ ՝୊ Ϣʔβʹ༻͍ΔΫϥΠΞϯτπʔϧΛڧ੍͢Δɼ͔ͭπʔϧͷ࢓༷มߋʹ൐͍ όʔδϣϯΞοϓ౳ͷมߋΛཁٻ͢Δɽ
  10. 10 2. ϓϩΩγαʔό • GitHub্ͰΦʔϓϯιʔειϑτ΢ΣΞͱͯ͠ ։ൃ͞Ε͍ͯΔSSHͷϓϩΩγαʔό • SSHͷϦΫΤετΛड͚ͨࡍʹɼSSHͷϢʔβ໊͔Βར༻͢Δ઀ଓઌαʔόΛܾఆͰ͖ΔػೳΛ ༗͢Δɽ •

    Ϣʔβ͕༻͍ΔΫϥΠΞϯτπʔϧͷ੍ݶ΍มߋΛ՝͞ͳ͍ɽ • Ϣʔβ͸ɼϓϩΩγαʔόͷIPΞυϨεɾϗετ໊͑͞஌͍ͬͯΕ͹ɼ઀ଓ͢ΔαʔόͷIPΞυ Ϩεɾϗετ໊΍ͦͷมߋΛҙࣝͤͣɼϢʔβ໊ʹඥ͍ͮͨαʔόʹಁաతʹSSH઀ଓͰ͖Δɽ ؅ཧσʔλ ᶃ ᶅ ϓϩΩγ αʔό SSHPiper ઀ଓઌαʔόΛܾఆ͢ΔϩδοΫΛγεςϜ؅ཧऀ͕ࣗ༝ʹ૊ΈࠐΉ͜ͱ΍มߋ͢Δ͜ͱ͕Ͱ͖ ͣɼϩδοΫΛมߋ͢ΔͨΊʹ͸ιʔείʔυʹ௚઀มߋΛՃ͑ͳ͚Ε͹ͳΒͳ͍ͨΊɼγες Ϝͷ࢓༷มߋʹର͢Δ֦ுੑ͕௿͍ɽ ᶄ SSH αʔό SSH ΫϥΠΞϯτ ՝୊
  11. 3. ఏҊख๏

  12. 12 ΞʔΩςΫνϟͷ֓ཁ γεςϜ؅ཧऀ͕ࣗ༝ʹ૊ΈࠐΈՄೳͳϑοΫؔ਺Λ༻͍ͯγεςϜมԽʹ௥ैͰ͖Δ SSHϓϩΩγαʔόΛఏҊ͢Δ • Ϣʔβʹ༻͍ΔΫϥΠΞϯτπʔϧͷ੍ݶ΍มߋΛ՝͞ͳ͍ • ૊ΈࠐΉϑοΫؔ਺ͷΈͷमਖ਼ͰϓϩΩγαʔόͷಈ࡞Λࣗ༝ʹม͑ΒΕΔͨΊɼ γεςϜͷ࢓༷มߋʹରͯ͠ߴ͍֦ுੑΛ༗͢Δ طଘSSHϓϩΩγαʔό

    ͱಉ͡ར఺ SSHΫϥΠΞϯτ ssh username@hostname Ϣʔβ໊ ઀ଓઌϗετ ؅ཧσʔλ ϑοΫؔ਺ SSH ϓϩΩγαʔό αʔό܈
  13. 13 ૊ΈࠐΈՄೳͳϑοΫؔ਺ • ϑοΫؔ਺͸SSHϦΫΤετ͝ͱʹຖճ࣮ߦ͞ΕΔ • SSHͷϢʔβ໊Λ΋ͱʹ઀ଓઌαʔόͷIPΞυϨεɾϗετ໊Λऔಘ͢Δؔ਺ • ܾఆͨ͠઀ଓઌαʔόͱΫϥΠΞϯτؒͷެ։伴ೝূΛ֦ு͢ΔͨΊͷؔ਺ • ͜ΕΒΛ༻͍ΔͱɼSSHϓϩΩγαʔόʹ͓͚Δ઀ଓઌͷܾఆ͓Αͼެ։伴ೝূΛ

    ϓϩάϥϚϒϧʹ֦ுͰ͖Δɽ • ϑοΫؔ਺ʹΑΔ֦ுੑʹΑΓɼҎԼͷબ୒ੑ͕ੜ·ΕΔ • Ϣʔβͱαʔόͷඥ෇͚৘ใ΍ɼೝূʹ༻͍Δ伴ͳͲͷ؅ཧσʔλΛσʔλϕʔ εɾಠࣗͷઃఆϑΝΠϧ౳ͷࣗ༝ͳσʔλܗࣜͰ؅ཧͰ͖Δɽ • ؅ཧσʔλΛऔಘ͢Δํ๏ΛWeb APIܦ༝ʹ͢ΔͳͲɼσʔλͷऔಘํ๏Λࣗ༝ ʹબ୒Ͱ͖Δɽ
  14. 14 Ϣʔβೝূͷ࢓૊Έ SSH ΫϥΠΞϯτ SSH αʔό SSHϓϩΩγ ύεϫʔυೝূํࣜ ެ։伴ೝূํࣜ SSH

    αʔό ೝূϦΫΤετ ೝূϨεϙϯε SSHϓϩΩγ͸SSHαʔόʹύέοτ Λసૹ͢ΔͷΈͰ͋ΓɼSSHαʔό͕ ೝূΛߦ͏ SSHϓϩΩγ Session ID: xxx Session ID: yyy ηογϣϯ͝ͱʹҰҙͷࣝผࢠΛؚΊ ͨσʔλΛൿີ伴Ͱॺ໊͠ɼೝূϦΫ ΤετΛૹΔͨΊɼSSHϓϩΩγ͸ೝূ ΛSSHαʔόʹ೚ͤΔ͜ͱ͕Ͱ͖ͳ͍ɽ ผͷൿີ伴Λ༻͍ͨ2ஈ֊ͷೝূ SSHϓϩΩγ͕ެ։伴 ݕࡧͷϑοΫؔ਺Λ༻ ͍ͯΫϥΠΞϯτͷೝ ূΛߦ͏ɽ 1ஈ֊໨ SSHαʔόʹSSHϓϩΩγ ͕อ࣋͢Δಛఆͷൿີ伴 Λશͯड͚ೖΕΔΑ͏ʹ ઃఆ͓ͯ͘͠ 2ஈ֊໨ SSH ΫϥΠΞϯτ
  15. 15 SSHϓϩΩγαʔόɿsshr • ఏҊ͢ΔΞʔΩςΫνϟΛ࣮ݱ͢ΔͨΊʹɼGoݴޠΛ༻͍ͯsshrͱ͍͏SSHϓϩΩγ αʔόΛOSSͱͯ͠։ൃ※1 • γεςϜ؅ཧऀ͕GoݴޠͰ࣮૷ͨؔ͠਺Λ૊ΈࠐΜͰϏϧυ͢Δ͜ͱͰɼϓϩΩγ αʔόͷػೳΛ֦ுͰ͖Δ࢓૊ΈΛͱ͍ͬͯΔɽ ૊ΈࠐΈՄೳͳϑοΫؔ਺ ؔ਺໊

    ໾ׂ/૝ఆ͞ΕΔॲཧ FindUpstreamHook Ϣʔβ໊ΛΩʔʹ઀ଓઌαʔόͷIPΞυϨε·ͨ ͸ϗετ໊Λσʔλϕʔε΍Web APIܦ༝Ͱऔಘ FetchAuthorizedKeysHook Ϣʔβͷެ։伴Λσʔλϕʔε΍Web APIܦ༝Ͱ औಘ FetchPrivateKeyHook sshrαʔόͷϩʔΧϧετϨʔδʹอ؅͞Ε͍ͯ Δൿີ伴Λऔಘ ϦΫΤετͷॲཧͷաఔ Ͱ͜ΕΒͷϑοΫؔ਺͕ ॱ࣍ݺͼग़͞ΕΔ ※1 https://github.com/tsurubee/sshr
  16. 16 ηΩϡϦςΟϦεΫ • ύεϫʔυೝূํࣜͷ৔߹ • sshrαʔό͸SSHαʔόʹύέοτΛసૹ͢ΔͷΈͰ͋ΓɼϢʔβͷύεϫʔ υΛ஌͍ͬͯͯɼೝূΛߦ͏͜ͱ͕Ͱ͖Δͷ͸SSHαʔόͷΈͰ͋ΔͨΊɼ sshrαʔόΛ༻͍ͨ৔߹Ͱ΋ೝূΛಥഁ͞ΕΔϦεΫ͸มΘΒͳ͍ɽ • ެ։伴ೝূํࣜͷ৔߹

    • sshrαʔόͷηΩϡϦςΟͷ໰୊΍sshrσʔϞϯͷ੬ऑੑͳͲ͕ݪҼͰ • sshrαʔό͕༗͍ͯ͠Δൿີ伴͕ྲྀग़͢Δɽ • sshrαʔό͔Βൿີ伴Λར༻ͨ͠೚ҙͷίϚϯυ͕࣮ߦ͞ΕΔɽ
  17. 17 ηΩϡϦςΟରࡦ sshrαʔόଆ SSHαʔόଆ ɹରࡦ ޮՌ αʔόʹϩάΠϯՄೳͳϢʔβͷ਺΍ ݖݶɼΞΫηεՄೳͳIPΛ࠷খݶʹߜΔ ൿີ伴ͷྲྀग़Λ๷͙ sshrσʔϞϯ͸rootݖݶΛ࣋ͨͳ͍Ϣʔβ

    Ͱ࣮ߦ͢Δ ೚ҙͷίϚϯυ͕࣮ߦ͞Εͨ৔߹ʹsshrαʔόʹ ର͢Δૢ࡞Λ੍ݶ͢Δ ɹରࡦ ޮՌ rootͰϦϞʔτϩάΠϯΛڐՄ͠ͳ͍ઃఆ ྫʣsshd_configͷPermitRootLogin SSHαʔόʹର͢Δૢ࡞ͷݖݶΛ੍ݶ͢Δ sshrͷൿີ伴ʹର͢Δ઀ଓݩIP੍ݶ ྫʣauthorized_keysͷIP੍ݶػೳ ൿີ伴͕֎෦ʹྲྀग़ͨ͠ࡍͷඃ֐Λ๷͙
  18. 4. ੑೳධՁͱߟ࡯

  19. 19 sshrͷΦʔόʔϔου • sshrͰ͸ɼSSHϦΫΤετ͝ͱʹ࣮ߦ͞ΕΔෳ਺ͷϑοΫؔ਺ʹΑΓɼ௨৴ͷ Φʔόʔϔου͕ൃੜ͢Δɽ • ͜ͷΦʔόʔϔουΛଌఆ͢Δ͜ͱͰɼఏҊ͢Δsshrͷಋೖ͕SSH઀ଓͷॲཧ࣌ؒ ʹ༩͑ΔӨڹΛධՁ͠ɼsshr͕࣮༻తͳ؀ڥʹ଱͑͏Δ͔ݕ౼͢Δɽ

  20. 20 ࣮ݧ಺༰ͱ৚݅ sshrΛհ͞ͳ͍ΫϥΠΞϯτͱαʔόؒͷ઀ଓʢӈਤ1ʣͱɼ ఏҊख๏Ͱ͋ΔsshrΛհͨ͠઀ଓʢӈਤ2ʣͰൺֱΛߦ͏ɽ ҎԼͷ2ύλʔϯͷ࣮ߦ࣌ؒͷଌఆΛߦ͏ ɹ1. unameίϚϯυΛ࣮ߦͨ͠৔߹ ɹ2. scpʢsecure copyʣʹΑΓϑΝΠϧΛసૹͨ͠৔߹

    ࣮ݧ಺༰ • ༻͍Δ࣮ݧ؀ڥ͸ӈදࢀর • ΫϥΠΞϯτɾαʔόؒͷೝূʹ͸ެ։伴ೝূΛ༻͍Δ • sshr͕࣮ߦ͢ΔϑοΫؔ਺͸ɼ઀ଓઌͷܾఆॲཧ͓Αͼ Ϣʔβͷެ։伴ݕࡧͷॲཧͷ͍ͣΕʹ͓͍ͯ΋ɼผαʔό ্ͷσʔλϕʔε͔Βࢀর͢Δ΋ͷͱ͢Δ • σʔλϕʔε͸໨తͷϨίʔυҎ֎Λؚ·ͳ͍΋ͷͱ͢Δ ؀ڥɾ৚݅
  21. 21 unameίϚϯυͷ࣮ߦ unameίϚϯυ࣮ߦ࣌ؒͷଌఆ݁Ռ ※ ࣮ߦ࣌ؒ͸શͯ100ճଌఆͷฏۉ஋ ※ +22msec • ΫϥΠΞϯτɾαʔόؒͷSSH઀ଓʹରͯ͠sshrΛհͨ͠৔߹ɼunameίϚϯυ࣮ߦͷ Φʔόʔϔου͸22msecͰ͋Δ͜ͱ͕෼͔ͬͨɽ

    • ͜Ε͸ηογϣϯཱ֬࣌ʹ࣮ߦ͞ΕΔϑοΫؔ਺ʢࠓճͷ৔߹2ճͷσʔλϕʔεݕࡧʣ ͕Өڹ͍ͯ͠Δͱߟ͑ΒΕΔɽ • sshrΛհ͢Δ͜ͱͰൃੜ͢ΔΦʔόʔϔου͸ɼSSHηογϣϯཱ֬࣌ʹϢʔβ͕஗Ԇ Λײ͡ͳ͍΄Ͳ୹͍࣌ؒͰ͋Δɽ
  22. 22 scpʹΑΔϑΝΠϧసૹ scpʹΑΓసૹ͢ΔϑΝΠϧͷαΠζͱ సૹ࣌ؒͷؔ܎ • 20MBͷϑΝΠϧΛసૹ͢Δ৔߹ɼsshrΛհ͢Δ͜ͱͰൃੜ͢Δ Φʔόʔϔου͸48ϛϦඵͰ͋ΓunameίϚϯυ࣮ߦͷ݁Ռ ΑΓେ͖͍ɽ • సૹ͢ΔϑΝΠϧαΠζ͕େ͖͘ͳΔʹͭΕͯɼൃੜ͢Δ

    Φʔόʔϔου͕େ͖͘ͳΔ͜ͱ͔ΒɼsshrΛհ͢Δ৔߹ɼ sshrαʔό͕ύέοτΛϑΥϫʔυΛ͢Δ͜ͱʹΑΔΦʔόʔ ϔου͕Өڹ͍ͯ͠Δͱߟ͑ΒΕΔɽ • ͔͠͠ͳ͕Βɼྫ͑͹100MBͷϑΝΠϧసૹͷ৔߹ʹண໨͢Δ ͱɼసૹ࣌ؒͷ૿Ճ཰͸Θ͔ͣ0.9%ఔ౓Ͱ͋Γɼશମͷసૹ࣌ ؒʹରͯ͠sshrΛհ͢Δ͜ͱͰൃੜ͢ΔΦʔόʔϔου͕઎ΊΔ ׂ߹͸ۃΊͯখ͍͞ɽ
  23. 23 ࣮؀ڥ΁ͷద༻ • Ϣʔβ͕ෳ਺ͷαʔό܈ͷத͔Βಛఆͷαʔόʹରͯ͠SSHϩάΠϯ͠ɼαʔόͷૢ࡞Λ ߦ͏͜ͱ΍ɼϑΝΠϧΛసૹ͢ΔΑ͏ͳαʔό؅ཧΛ૝ఆͨ͠৔߹ɼsshrͷΦʔόϔου ͸࣮༻ʹे෼ʹ଱͑͏Δ΄Ͳখ͍͞ɽ • ҰํɼsshrͰ͸ॲཧͷաఔͰɼσʔλϕʔε౳ͷ؅ཧσʔλ͔Β઀ଓઌαʔό΍ެ։伴Λ ݕࡧ͢ΔͨΊɼσʔλϕʔε΍Web API౳ͷԠ౴͕࣌ؒେ͖͍৔߹͸ɼͦΕʹ൐͍sshrΛ

    հͨ͠SSHηογϣϯཱ֬ʹ͔͔Δ࣌ؒ΋௕͘ͳΔɽͦͷ৔߹͸ɼԠ౴࣌ؒΛ୹͘͢Δର ࡦΛߦ͏ඞཁ͕͋Δɽ
  24. 5. ·ͱΊ

  25. 25 ·ͱΊ • ຊݚڀͰ͸ɼϢʔβʹ༻͍ΔΫϥΠΞϯτπʔϧͷ੍ݶ΍มߋΛཁٻͤͣɼγε ςϜ؅ཧऀ͕ࣗ༝ʹ૊ΈࠐΈՄೳͳϑοΫؔ਺Λ༻͍ͯγεςϜมԽʹ௥ैͰ͖ Δsshrͱ͍͏SSHϓϩΩγαʔόΛఏҊͨ͠ɽ • ఏҊख๏͸ɼ૊ΈࠐΉϑοΫؔ਺ͷΈͷमਖ਼ͰϓϩΩγαʔόͷಈ࡞Λࣗ༝ʹม ͑ΒΕΔͨΊɼγεςϜͷ࢓༷มߋʹରͯ͠ߴ͍֦ுੑΛ༗͍ͯ͠Δɽ •

    ͞Βʹ࣮ݧ͔ΒɼΫϥΠΞϯτɾαʔόؒʹsshrΛಋೖͨ͠৔߹ͷSSHηογϣ ϯཱ֬ͷΦʔόʔϔου͸20ϛϦඵఔ౓Ͱ͋ΓɼϢʔβ͕ಛఆͷαʔόʹSSHϩ άΠϯ͢Δࡍʹ஗ԆΛײ͡ͳ͍΄Ͳ୹͍࣌ؒͰ͋Δ͜ͱΛࣔͨ͠ɽ