ãã®èšäºã«ã¯ãSSH ããã广çã«äœ¿çšããããã®ãã¹ã ãã©ã¯ãã£ã¹ãå«ãŸããŠããŸãããã®äžã§ãæ¬¡ã®æ¹æ³ãåŠã³ãŸãã
- SSH ãã°ã€ã³ã« 2 çªç®ã®èŠçŽ ã远å ãã
- ãšãŒãžã§ã³ã転éãå®å šã«äœ¿çšãã
- äžæããã SSH ã»ãã·ã§ã³ãããã°ã¢ãŠããã
- æ°žç¶çãªã¿ãŒããã«ãéãããŸãŸã«ããŠãããŸã
- ãªã¢ãŒã ã¿ãŒããã« ã»ãã·ã§ã³ãå人ãšå ±æããŸã (Zoom ã¯äœ¿çšããŸãã)ã
SSH ã« 2 çªç®ã®èŠçŽ ã远å ãã
次㮠5 ã€ã®ç°ãªãæ¹æ³ã§ãSSH æ¥ç¶ã«èªèšŒã® 2 çªç®ã®èŠçŽ ã远å ã§ããŸãã
- OpenSSH ãæŽæ°ããæå·åããŒã䜿çšããŸãã 2020 幎 2 æãOpenSSH 㯠FIDO U8.2F (Universal Second Factor) æå·åããŒã®ãµããŒãã远å ããŸãããããã¯çŽ æŽãããæ°æ©èœã§ãããæ³šæç¹ããããŸããXNUMX æã®ã¢ããããŒãã§ã¯æ°ããã㌠ã¿ã€ããå°å
¥ãããŠãããããOpenSSH XNUMX 以éã«ã¢ããããŒãããã¯ã©ã€ã¢ã³ããšãµãŒããŒã®ã¿ãæå·åããŒã䜿çšã§ããŸããããŒã
ssh âVã³ãã³ãã§SSHã®ã¯ã©ã€ã¢ã³ãããŒãžã§ã³ãšãµãŒããŒããŒãžã§ã³ã確èªã§ããŸããnc [servername] 22
25519 æã®ããŒãžã§ã³ã«ã¯ãecdsa-sk ãš edXNUMX-sk ãšãã XNUMX ã€ã®æ°ããã¿ã€ãã®ããŒã (察å¿ããèšŒææžãšãšãã«) 远å ãããŸãããã㌠ãã¡ã€ã«ãçæããã«ã¯ãæå·åããŒãæ¿å ¥ããŠã³ãã³ããå®è¡ããã ãã§ãã$ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_skå ¬éããŒãšç§å¯ããŒãçæããããããã U2F ããã€ã¹ã«é¢é£ä»ããããŸãã U2F ããã€ã¹äžã®ç§å¯ããŒã®åœ¹å²ã¯ãæå·åããŒãã¢ã¯ãã£ãåããããšãã«ãã£ã¹ã¯äžã®ç§å¯ããŒèšè¿°åã埩å·åããããšã§ãã
ããã«ã2 çªç®ã®èŠçŽ ãšããŠãããŒã®ãã¹ãã¬ãŒãºãæå®ã§ããŸãã
åžžé§ããŒã¯ãOpenSSH ã§ãµããŒããããå¥ã®ã¿ã€ãã® -sk ããŒçæã§ãããã®ã¢ãããŒãã§ã¯ããã³ãã«ã U2F ããã€ã¹ã«ä¿åãããå¿ èŠãªãšãã«æå·åããŒãšãšãã«ãã³ãã«ãä¿æã§ããããã«ãªããŸããæ¬¡ã®ã³ãã³ãã䜿çšããŠåžžé§ããŒãäœæã§ããŸãã
$ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_sk次ã«ããã³ãã«ãæ°ããããã€ã¹ã®ã¡ã¢ãªã«æ»ãã«ã¯ãæå·åããŒã貌ãä»ããŠã³ãã³ããå®è¡ããŸãã
$ ssh-add -Kãã¹ãã«æ¥ç¶ãããšãããæå·åããŒãã¢ã¯ãã£ãã«ããå¿ èŠããããŸãã
- PIV+PKCS11 ãš Yubikey ã䜿çšããŸããæå·åããŒã䜿çšããŠä»¥åã®ããŒãžã§ã³ã® SSHD ãåããããã€ã¹ã«æ¥ç¶ããã«ã¯ãå¥ã®ã¢ãããŒããå¿ èŠã«ãªããŸãã Yubico ã«ã¯ãPIV/PKCS2 ã§ã® U11F+SSH ã®äœ¿çšã«é¢ããã¬ã€ãããããŸãããã㯠FIDO U2F ãšã¯ç°ãªãããã®æ¹æ³ã¯æ©èœããŸãããã©ã®ãããªéæ³ããããåãããŠããã®ããè§£æããã«ã¯å€å€§ãªåŽåãããããŸãã
- ã«ã¹ã¿ã yubikey-agent ssh ãšãŒãžã§ã³ããé©çšããŸãã Filippo Valsorda 㯠Yubikeys ã® SSH ãšãŒãžã§ã³ããæžããŸãããããã¯å®å šã«æ°ãããæå°éã®æ©èœãå«ãŸããŠããŸãã
- Touch ID ãš sekey ã䜿çšããŸãã Sekey ã¯ãMac äžã®å®å šãªãšã³ã¯ã¬ãŒãã«ç§å¯ããŒãä¿åããã¢ã¯ã»ã¹æ©èœã« Touch ID ã䜿çšã§ããããã«ãããªãŒãã³ ãœãŒã¹ã® SSH ãšãŒãžã§ã³ãã§ãã
- ã·ã³ã°ã« ãµã€ã³ãªã³ SSH ã䜿çšããŸãããã®ã¡ãœãããèšå®ããã®ã«åœ¹ç«ã€ãã¥ãŒããªã¢ã«ãäœæããŸããã SSH äžã®ã·ã³ã°ã« ãµã€ã³ã®å©ç¹ã® 1 ã€ã¯ãå€èŠçŽ èªèšŒ (MFA) ã®ãµããŒããªã©ãã¢ã€ãã³ãã£ã㣠ãããã€ããŒã®ã»ãã¥ãªã㣠ããªã·ãŒã掻çšã§ããããšã§ãã
ãšãŒãžã§ã³ã転éã®å®å šãªäœ¿çš
SHH ãšãŒãžã§ã³ã転éã«ããããªã¢ãŒã ãã¹ããããŒã«ã« ããã€ã¹ã® SSH ãšãŒãžã§ã³ãã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãããšãŒãžã§ã³ã転éãæå¹ã«ã㊠SSH ã䜿çšããå Žå (é垞㯠ssh -A çµç±)ãæ¥ç¶ã« 2 ã€ã®ãã£ãã« (察話åã»ãã·ã§ã³ãšãšãŒãžã§ã³ã転éçšã®ãã£ãã«) ãååšããŸãããã®ãã£ãã«ãéããŠãããŒã«ã« SSH ãšãŒãžã§ã³ãã«ãã£ãŠäœæããã Unix ãœã±ããããªã¢ãŒã ãã¹ãã«æ¥ç¶ããŸãããªã¢ãŒã ããã€ã¹äžã§ root ã¢ã¯ã»ã¹æš©ãæã€ãŠãŒã¶ãŒãããŒã«ã« SSH ãšãŒãžã§ã³ãã«ã¢ã¯ã»ã¹ãããªã³ã©ã€ã³ã§ãŠãŒã¶ãŒã«ãªãããŸãå¯èœæ§ããããããããã¯å±éºãªæ¹æ³ã§ãã Open SSH ãããã®æšæº SSH ãšãŒãžã§ã³ãã䜿çšãããšããããèµ·ãã£ãããšã«ããæ°ä»ããªããªããŸãã UXNUMXF ã㌠(ãŸã㯠Sekey) ãæã£ãŠãããšãå€éšãã SSH ãšãŒãžã§ã³ãã䜿çšããããšãã詊ã¿ã广çã«ãããã¯ããã®ã«åœ¹ç«ã¡ãŸãã
ãã®ãããªäºé²çãè¬ãããšããŠãããšãŒãžã§ã³ã転éã®äœ¿çšã¯æå°éã«æããããšããå§ãããŸãããã¹ãŠã®ã»ãã·ã§ã³ã§ããã䜿çšããã¹ãã§ã¯ãããŸããããšãŒãžã§ã³ã転éã¯ãçŸåšã®ã»ãã·ã§ã³ã§å¿ èŠã§ããããšã確å®ãªå Žåã«ã®ã¿äœ¿çšããŠãã ããã
ãã³ã°ããã»ãã·ã§ã³ãçµäºãã
SSH ã»ãã·ã§ã³ãçµäºããåå ãšããŠã¯ããããã¯ãŒã¯ã®äžæãããã°ã©ã ã®å¶åŸ¡äžèœãªåäœãããŒããŒãå ¥åããããã¯ãããšã¹ã±ãŒã ã·ãŒã±ã³ã¹ãªã©ãèããããŸãã
ãã³ã°ããã»ãã·ã§ã³ãçµäºããã«ã¯ãããã€ãã®æ¹æ³ããããŸãã
- ãããã¯ãŒã¯ãäžæããããšèªåçã«çµäºããŸãã以äžã .ssh/config ã«è¿œå ããå¿
èŠããããŸãã
ServerAliveInterval 5 ServerAliveCountMax 1ssh ã¯ãServerAliveInterval ç§ããšã«ãªã¢ãŒã ãã¹ãã«ãšã³ãŒãéä¿¡ããŠãæ¥ç¶ã確èªããŸãã ServerAliveCountMax ãè¶ ãããšã³ãŒãå¿çãåä¿¡ããªãå Žåãssh ã¯æ¥ç¶ãã¿ã€ã ã¢ãŠãããã»ãã·ã§ã³ãçµäºããŸãã
- ã»ãã·ã§ã³ãäžæããŸãã ssh ã¯ããã©ã«ãã§ ~ (ãã«ã) æåãå¶åŸ¡æåãšããŠäœ¿çšããŸããããŒã ããéããŠããæ¥ç¶ãéããŠãã¿ãŒããã«ã«æ»ããŸãã (ãšã¹ã±ãŒã ã·ãŒã±ã³ã¹ã¯æ°ããè¡ã«ã®ã¿å ¥åã§ããŸãã) ~?ãã®ã»ãã·ã§ã³ã§äœ¿çšã§ããã³ãã³ãã®å®å šãªãªã¹ãã衚瀺ãããŸããåœéããŒããŒãã§ ~ æåãå ¥åããã«ã¯ã~ ããŒã 2 åæŒãå¿ èŠãããå Žåãããããšã«æ³šæããŠãã ããã
ããããã»ãã·ã§ã³ã®åçµã¯ãªãèµ·ããã®ã§ãããã? ã€ã³ã¿ãŒããããäœæããããšããã³ã³ãã¥ãŒã¿ãŒã¯ãã£ãã«å Žæããå Žæãžç§»åããŸããã§ãããã©ãããããã䜿çšããè€æ°ã® IPv4 WiFi ãããã¯ãŒã¯éãåãæ¿ãããšãIP ã¢ãã¬ã¹ã倿ŽãããŸãã SSH 㯠TCP æ¥ç¶ã«äŸåããTCP æ¥ç¶ã¯å®å®ãã IP ã¢ãã¬ã¹ãæã€ãšã³ããã€ã³ãã«äŸåããããããããã¯ãŒã¯éãåãæ¿ãããã³ã«ãSSH æ¥ç¶ã¯ãœã±ãã ãã³ãã«ãéããäºå®äžãSSH æ¥ç¶èªäœã倱ãããŸãã IP ã¢ãã¬ã¹ã倿Žããããšããããã¯ãŒã¯ ã¹ã¿ãã¯ããã³ãã«ã®åªå€±ãæ€åºãããŸã§ã«æéãããããŸãããããã¯ãŒã¯ã®åé¡ãçºçããå ŽåãTCP æ¥ç¶äžã®ããããã®ããŒããæ©æã«æ¥ç¶ãçµäºããããšã¯æãŸãããããŸããããããã£ãŠããããã³ã«ã¯æçµçã«è«ŠãããŸã§ã«ããã«æ°åããŒã¿ã®åéä¿¡ã詊è¡ããŸãããã®éã端æ«ã§ã¯ã»ãã·ã§ã³ãããªãŒãºããããã«èŠããŸãã IPv6 ã§ã¯ããããã¯ãŒã¯ã倿ŽããŠãããã€ã¹ãããŒã ã¢ãã¬ã¹ãç¶æã§ããããã«ããã¢ããªãã£é¢é£ã®æ©èœãããã€ã远å ãããŠããŸãããããããããã¯ããã»ã©åé¡ã§ã¯ãªããªãæ¥ãæ¥ãã§ãããã
ãªã¢ãŒããã¹ãäžã§æ°žç¶ã¿ãŒããã«ãéãããŸãŸã«ããæ¹æ³
ç°ãªããããã¯ãŒã¯éãç§»åãããšãããŸãã¯ãã°ããåæããããšãã«æ¥ç¶ãç¶æããæ¹æ³ã«ã¯ 2 ã€ã®ç°ãªãã¢ãããŒãããããŸãã
1. 掻çšãã ãŸãã¯
ãããã¯ãŒã¯ãåãæ¿ããŠãåæãããªãæ¥ç¶ãæ¬åœã«å¿ èŠãªå Žåã¯ãMosh ã¢ãã€ã« ã·ã§ã«ã䜿çšããŠãã ãããããã¯ãæåã« SSH ãã³ãã·ã§ã€ã¯ã䜿çšãããã®åŸã»ãã·ã§ã³äžã«ç¬èªã®æå·åãã£ãã«ã«åãæ¿ããã»ãã¥ã¢ ã·ã§ã«ã§ãããã®ããã«ããŠãMosh ã¯ãã€ã³ã¿ãŒãããã®äžæãã©ãããããã® IP ã¢ãã¬ã¹ã®å€æŽãæ·±å»ãªãããã¯ãŒã¯é害ãªã©ã«èããããšãã§ãããéåžžã«èä¹ æ§ãããå®å šãªå¥ã®ãã£ãã«ãäœæããŸããããããã¹ãŠã¯ãUDP æ¥ç¶ã®éæ³ã®ãããã§ããåæãããã³ã«ãã¢ãã·ã¥ããŸãã
Mosh ã䜿çšããã«ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ã« Mosh ãã€ã³ã¹ããŒã«ãããªã¢ãŒã ãã¹ããžã®éæ¥ç¶ UPD ãã©ãã£ãã¯çšã«ããŒã 60000 ïœ 61000 ãéãå¿
èŠããããŸããå°æ¥çã«ã¯ãæ¥ç¶ããã«ã¯ããã䜿çšããã ãã§ååã§ã mosh user@server.
Mosh ã¯ç»é¢ãšããŒã¹ãããŒã¯ã®ã¬ãã«ã§åäœãããããã¯ã©ã€ã¢ã³ããš SSH ãµãŒããŒéã§æšæºå ¥åºåã®ãã€ã㪠ã¹ããªãŒã ãéä¿¡ããå Žåã«æ¯ã¹ãŠãããã€ãã®å©ç¹ããããŸããç»é¢ãšããŒã¹ãããŒã¯ã®ã¿ãåæããå¿ èŠãããå Žåã¯ãåŸã§åæãããæ¥ç¶ã埩å ããã®ãã¯ããã«ç°¡åã«ãªããŸãã SSH ã¯çºçãããã¹ãŠããããã¡ãªã³ã°ããŠéä¿¡ããŸãããMosh ã¯ããŒã¹ãããŒã¯ããããã¡ãªã³ã°ããã¿ãŒããã« ãŠã£ã³ããŠã®æåŸã®ãã¬ãŒã ãã¯ã©ã€ã¢ã³ããšåæããã ãã§æžã¿ãŸãã
2.tmuxã䜿çšãã
ã奜ããªããã«è¡ãæ¥ãããŠãªã¢ãŒã ãã¹ãäžã§ã¿ãŒããã« ã»ãã·ã§ã³ãç¶æãããå Žåã¯ã次ã䜿çšããŸãã tmuxãç§ã¯ tmux ã倧奜ãã§ããã€ã䜿ã£ãŠããŸãã SSH æ¥ç¶ãäžæãããå Žåãtmux ã»ãã·ã§ã³ã«æ»ãã«ã¯ã忥ç¶ããŠæ¬¡ã®ããã«å
¥åããã ãã§ãã tmux attachãããã«ãiOS 端æ«ã®ã¿ãã®ãããªç«¯æ«å
ã¿ããããã«ãä»ã®ãŠãŒã¶ãŒãšç«¯æ«ãå
±æã§ãããªã©ãçŽ æŽãããæ©èœãåããŠããŸãã
Byobu 㯠tmux ã®äœ¿ãããããå€§å¹ ã«åäžãããå€ãã®ããŒããŒã ã·ã§ãŒãã«ããã远å ããããã±ãŒãžã§ãã Byobu 㯠Ubuntu ã«ãã³ãã«ãããŠãããHomebrew çµç±ã§ Mac ã«ç°¡åã«ã€ã³ã¹ããŒã«ã§ããŸãã
ãªã¢ãŒãã¿ãŒããã«ã»ãã·ã§ã³ãå人ãšå ±æãã
ãµãŒããŒäžã®è€éãªåé¡ããããã°ãããšãã«ãåãéšå±ã«ããªã人㚠SSH ã»ãã·ã§ã³ãå ±æãããå ŽåããããŸãã tmux ã¯ãã®ã¿ã¹ã¯ã«æé©ã§ããå¿ èŠãªæé ã¯æ¬¡ã®ãšããã§ãã
- tmux ãèŠå¡ããŒãããŸãã¯äœ¿çšãããµãŒããŒã«ã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ããã
- ã©ã¡ããåãã¢ã«ãŠã³ãã䜿çšããŠããã€ã¹ã« SSH æ¥ç¶ããå¿ èŠããããŸãã
- tmux ã»ãã·ã§ã³ãéå§ããã«ã¯ãã©ã¡ããã tmux ãå®è¡ããŠããå¿ èŠããããŸãã
- ããäžæ¹ã¯ tmuxattach ãå®è¡ããå¿ èŠããããŸã
- åºæ¥äžããïŒå ±æç«¯æ«ããããŸãã
ããæŽç·Žããããã«ããŠãŒã¶ãŒ tmux ã»ãã·ã§ã³ãå¿
èŠãªå Žåã¯ãå
±æç«¯æ«ã»ãã·ã§ã³ãã¯ããã«ç°¡åã«ãã tmux ã®ãã©ãŒã¯ã§ãã tmate ã詊ããŠãã ããã
åºæïŒ habr.com
