SSHã®ä»çµã¿ â å®å šãªãªã¢ãŒãæ¥ç¶ã¯ã©ãå®çŸãããŠããïŒ
SSHã£ãŠãµãŒããŒã«æ¥ç¶ãããšãã«äœ¿ããã€ã ããïŒãªãã§æ®éã®æ¥ç¶ãããã¡ãªã®ïŒ
ãã質åã ããSSHãç»å Žããåã¯Telnetãšãããããã³ã«ã䜿ãããŠãããã ãã©ãTelnetã¯éä¿¡å 容ãå šéšå¹³æïŒæå·åãªãïŒã§æµãããã ããã¹ã¯ãŒããã³ãã³ããäžžèŠããSSHã¯éä¿¡ãäžžããšæå·åãããããéäžã§çã¿èŠãããŠãäžèº«ãåãããªããã ãã
äžžèŠãã£ãŠæãïŒãããSSHã§æ¥ç¶ãããšããæåã«ã©ããã£ãŠæå·åãå§ããã®ïŒ
SSHã®æ¥ç¶ã¯ãŸãTCPã§3ãŠã§ã€ãã³ãã·ã§ã€ã¯ããåŸããäºãã®SSHãããã³ã«ããŒãžã§ã³ã亀æãããšããããå§ãŸããããã®ããšDiffie-Hellmanéµäº€æãšããä»çµã¿ã§ããäºãã ããç¥ã£ãŠããå ±éã®ç§å¯éµãäœãåºããã ãé¢çœãã®ã¯ããã®ç§å¯éµèªäœã¯ãããã¯ãŒã¯äžãäžåºŠãæµããªãããšãæ°åŠçãªããªãã¯ã§ãå ¬éæ å ±ã ããããåãããŠãåãéµãå°ãåºãããã ãã
ç§å¯éµããããã¯ãŒã¯ãæµããªãã®ã«ãäºãåãéµãæãŠãã®ïŒéæ³ã¿ããïŒ
Diffie-Hellmanã¯æ¬åœã«ããã§ããä»çµã¿ã ãããã§ããããã§äžã€åé¡ããããéä¿¡çžæãæ¬ç©ã®ãµãŒããŒãã©ãããã©ããã£ãŠç¢ºèªããïŒ åããŠãµãŒããŒã«æ¥ç¶ãããšãAre you sure you want to continue connecting?ãã£ãŠèãããã§ãããããã¯ãµãŒããŒã®ãã¹ãéµã®ãã£ã³ã¬ãŒããªã³ãã衚瀺ããŠãæ¬ç©ãã©ãã確èªãããŠãããã ã
ãã®ã¡ãã»ãŒãžããã€ãyesã£ãŠæã£ãŠãâŠã¡ãããšç¢ºèªããªããšãã¡ãªã®ïŒ
æ¬æ¥ã¯ãµãŒããŒç®¡çè ãããã£ã³ã¬ãŒããªã³ããäºåã«ããã£ãŠç §åãã¹ããªãã ãyesãšçãããšããã®ãã¹ãéµã ~/.ssh/known_hosts ã«ä¿åããããæ¬¡å以éã¯ãã®ãã¡ã€ã«ãšç §åããŠãããéµãå€ãã£ãŠããããWARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!ããšããèŠåãåºããããã¯äžéè æ»æã®å¯èœæ§ã瀺ãããã絶察ã«ç¡èŠãã¡ããã¡ã ãã
ãªãã»ã©ãã§ãæå·åãããéä¿¡ãã§ãããæ¬¡ã¯ãã°ã€ã³ã ããããã¹ã¯ãŒãèªèšŒãšå ¬ééµèªèšŒãããã£ãŠèãããã©ãäœãéãã®ïŒ
ãã¹ã¯ãŒãèªèšŒã¯æåéããã¹ã¯ãŒããéãæ¹åŒãSSHã§æå·åãããŠãããçèŽã¯ããã«ãããã©ããã«ãŒããã©ãŒã¹æ»æã«ã¯åŒ±ããäžæ¹ãå ¬ééµèªèšŒã¯id_rsaãid_ed25519ãšãã£ãéµãã¢ãäœ¿ãæ¹åŒã§ãç§å¯éµã¯æå ã«ãå ¬ééµã¯ãµãŒããŒã® ~/.ssh/authorized_keys ã«ç»é²ããŠãããã ã
å ¬ééµèªèšŒã ãšãã¹ã¯ãŒããéããªããŠããã®ïŒå ·äœçã«ã©ããã£ãŠæ¬äººç¢ºèªããã®ïŒ
ãã£ã¬ã³ãžã»ã¬ã¹ãã³ã¹æ¹åŒã ãããµãŒããŒãã©ã³ãã ãªããŒã¿ïŒãã£ã¬ã³ãžïŒãéã£ãŠãã¯ã©ã€ã¢ã³ããç§å¯éµã§ããã«çœ²åããŠè¿ãããµãŒããŒã¯ç»é²æžã¿ã®å ¬ééµã§çœ²åãæ€èšŒãããç§å¯éµãæã£ãŠãã人ããæ£ãã眲åã¯äœããªããããããã§æ¬äººç¢ºèªãã§ãããã ãç§å¯éµèªäœã¯ãããã¯ãŒã¯ã«äžååºãªãã®ããã€ã³ãã ãã
SSHã£ãŠæ¥ç¶ããã ããããªããŠããã³ããªã³ã°ãšãããŒããã©ã¯ãŒãã£ã³ã°ãã§ãããã ããïŒ
ãããSSHã®åŒ·åãªæ©èœã ãã-L ãªãã·ã§ã³ã®ããŒã«ã«ãã©ã¯ãŒãã£ã³ã°ã¯ãæå ã®ããŒãããSSHè¶ãã«ãªã¢ãŒãå ã®ãµãŒãã¹ã«æ¥ç¶ã§ãããäŸãã° ssh -L 3306:db-server:3306 bastion ã§ãæå ã®localhost:3306ããªã¢ãŒãã®DBã«ç¹ããã-R ã®ãªã¢ãŒããã©ã¯ãŒãã£ã³ã°ã¯éæ¹åã§ããµãŒããŒåŽã®ããŒããæå ã«è»¢éããã-D ã¯SOCKSãããã·ãç«ãŠãŠããã¹ãŠã®éä¿¡ãSSHçµç±ã«ã§ãããã
ssh-agentã£ãŠããã®ãèããããšãããã©ãããã¯äœïŒ
ssh-agentã¯ç§å¯éµãã¡ã¢ãªã«ä¿æããŠãããããã°ã©ã ã ãããã¹ãã¬ãŒãºä»ãã®ç§å¯éµãæ¯åå ¥åããã®ã¯é¢åã§ããïŒssh-addã§äžåºŠç»é²ããã°ã以éã¯ãã¹ãã¬ãŒãºãªãã§èªèšŒã§ãããããã«ãšãŒãžã§ã³ããã©ã¯ãŒãã£ã³ã°ïŒssh -AïŒã䜿ããšãèžã¿å°ãµãŒããŒçµç±ã§å¥ã®ãµãŒããŒã«æ¥ç¶ãããšããæå ã®ãšãŒãžã§ã³ãã®éµããã®ãŸãŸäœ¿ããããã ããèžã¿å°ãµãŒããŒã®ç®¡çè ãæªæãæã£ãŠãããšéµãæªçšãããå±éºããããããä¿¡é Œã§ãããµãŒããŒã§ã®ã¿äœ¿ãã¹ãã ãã
å€§èŠæš¡ãªç°å¢ã ãšããµãŒããŒããšã«authorized_keysã管çããã®ã¯å€§å€ããâŠäœãããæ¹æ³ããã®ïŒ
SSHèªèšŒå±ïŒSSH CAïŒãšããä»çµã¿ãããããCAã®ç§å¯éµã§ãŠãŒã¶ãŒã®å ¬ééµã«çœ²åããŠèšŒææžãçºè¡ãããã ããµãŒããŒåŽã¯CAã®å ¬ééµã ãä¿¡é Œããã°ãããããauthorized_keysã®ç®¡çãäžèŠã«ãªããæå¹æéãèšå®ã§ããããå€§èŠæš¡ç°å¢ã§ã¯å¿ é ã®ä»çµã¿ã ããããšProxyJumpïŒssh -JïŒã䜿ãã°ãssh -J bastion target-server ã§èžã¿å°çµç±ã®æ¥ç¶ãã¯ã³ã³ãã³ãã§ã§ãããã
2024幎ã«å€§ããªäºä»¶ããã£ãããxz/liblzmaãšããããŒã¿å§çž®ã©ã€ãã©ãªã«ãsshdãæšçãšããããã¯ãã¢ãä»èŸŒãŸãããã ã2幎以äžãããŠä¿¡é Œãç¯ããã¡ã³ãããŒãæªæããã³ãŒããçŽã蟌ãŸããŠãããšããããµãã©ã€ãã§ãŒã³æ»æã®å žåäŸãPostgreSQLã®éçºè ãsshdæ¥ç¶ã®é å»¶ã«æ°ã¥ããŠçºèŠãããã ãã©ãããæ°ã¥ãããªãã£ããSSHæ¥ç¶æã«ä»»æã³ãŒããå®è¡ãããæãããã£ããSSHã®ãããã³ã«èªäœã¯å ç¢ã§ããå®è£ ããã®äŸåé¢ä¿ãæ»æå¯Ÿè±¡ã«ãªããããšããæèšã ãã