SSHã®ãã¹ãéµè¨å®
ãã¹ãéµã¨ã¯
SSHã®éµã¯ãã¸ã¿ã«ç½²åç¨ã®ç§å¯éµã§ãããæ¬äººç¢ºèªã«ä½¿ããããããããid_rsa
ã¯ãã¦ã¼ã¶ã¼å´ã®æ¬äººç¢ºèªã®ããã«ä½¿ãããã
ä¸æ¹ãSSHãµã¼ãã¼å´ãå°ç¨ã®ç§å¯éµãææãã¦ããããã㯠/etc/ssh/ssh_host_{dsa,ecdsa,ed25519,rsa}_key
ã®ãããªå ´æã«ä¿ç®¡ããã¦ãããSSHæ¥ç¶ã®éã«ã¯ãããã使ã£ãå
¬ééµèªè¨¼ãè¡ããããã¯ã©ã¤ã¢ã³ãå´ã® .ssh/known_hosts
ã¨ç
§ããåããã¦ãã§ãã¯ããã
ãã¹ãéµããªãã¨ä½ãåé¡ã
ããæªæãã第ä¸è ãéä¿¡ãçè´ã»æ¹ç«ã§ããå ´åãå½ã®ãµã¼ãã¼ã¨éä¿¡ããããã¨ãã§ãã¦ãã¾ããããã¨ãé©åãªæå·ãç¨ãã¦å ¨ãã®å¥äººã¨ä¼è©±ãã¦ããã¨ããæ¬æ«è»¢åãªç¶æ ã«ãªããå½ã®ãµã¼ãã¼ä¸ã¨æ°ä»ããã«sudoãã¹ã¯ã¼ããå ¥ãããå°ã£ããã¨ã«ãªããããããªãã
HashKnownHostsããªãã«ãã
çè
ã¯ããã¹ãéµãå®å
¨ã«éç¨ããããã«ãHashKnownHosts
ããªãã«ããã¹ãã ã¨èãã¦ããã
ãããã HashKnownHosts
ã¨ã¯ã .ssh/known_hosts
ã«ããã¦ãã¹ãåãããã·ã¥åãã¦ä¿åãããªãã·ã§ã³ã§ãããããã·ã¥åãããªãå ´åã known_hosts
ã®åè¡ã¯ä»¥ä¸ã®ããã«ãªã£ã¦ããã
example.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHayNTYAAAAIbmlzdHAyNTYAAABBBAHOh5LY0tU5hZGZn4iFvUQ9EJSGW7n9KbTXj5WK5AEIQNB5ShhNPwJcXqtc5hxwEmBX2VSdjUFkIT6U2Otur7w=
HashKnownHosts
ã使ãã¨ãããã¹ãåã¾ãã¯IPã¢ãã¬ã¹ããç½²åæ¹å¼ããå
¬ééµãã®ãã¡ãããã¹ãåã¾ãã¯IPã¢ãã¬ã¹ãã®é¨åãããã·ã¥åããã
|1|tbdGjw+HE9Clw2hC7ezBLOMGFGI=|xOtpgqDyfDlT/PB7cYm442R1+zY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHayNTYAAAAIbmlzdHAyNTYAAABBBAHOh5LY0tU5hZGZn4iFvUQ9EJSGW7n9KbTXj5WK5AEIQNB5ShhNPwJcXqtc5hxwEmBX2VSdjUFkIT6U2Otur7w=
ã®ããã«ãªã(|1|ã½ã«ã|ããã·ã¥|
)ãããã·ã¥åãããã¨ã§ã
- ç¹å®ã®ãã¹ãåãããã®è¡ã«è©²å½ãããã©ããã¯å¤å®ã§ããã
- ãããããã®è¡ã ãè¦ã¦ããã¹ãåã復å ãããã¨ã¯å°é£ã§ããã
ã¨ãªããã¤ã¾ãã
HashKnownHosts
ã®ã¡ãªãã:known_hosts
ãæ¼æ´©ãã¦ããæ¥ç¶å ãã¹ãã®æ å ±ã復å ã§ããªããHashKnownHosts
ã®ãã¡ãªãã:known_hosts
ã®ç®¡çãå°é£ã«ãªããã©ã®ãã¹ããä¿¡ä»»ãã¦ãããããããªããããå½ã®ãã¹ããä¿¡é ¼ãã¦ãã¾ãå±éºæ§ãå¢ããã
ã¨èãããããæ¥ç¶å
ãã¹ãã®æ
å ±ã¯ä»®ã«æ¼ãã¦ã大ããªå½±é¿ã¯ãªãããã ããããã known_hosts
ãæ¼æ´©ãããããªç¶æ³ã§ã¯ç§å¯éµãªã©ä»ã®éè¦ãªæ
å ±ãæ¼ãã¦ããç¶æ³ã ãããã¡ãªããããã¡ãªããã«é£ãåããªãã¨æãã
known_hosts
ã管çãã
ããã§ã¯ããã¹ãåã®ããã·ã¥åãæ¢ããä¸ã§ã known_hosts
ããã¡ãã¨ç®¡çãããã¨ãèããããåè¿°ã®ã¨ããã known_hosts
ã®åºæ¬ãã©ã¼ãããã¯
ãã¹ãåã¾ãã¯IPã¢ãã¬ã¹ ç½²åæ¹å¼ å ¬ééµ (ã³ã¡ã³ã)
ã§ãããã¾ãã #
ã§å§ã¾ãè¡ãã³ã¡ã³ãã§ããã
ããã¹ãåã¾ãã¯IPã¢ãã¬ã¹ãã®é¨åã®è©³ç´°ãªãã©ã¼ãããã¯ä»¥ä¸ã®éãã
- åºæ¬çã«ã¯ã
gitlab.com
ã¨ã52.167.219.168
ã®ããã«ãã¹ãåã¾ãã¯IPã¢ãã¬ã¹ããã®ã¾ã¾ä½¿ããã - 22çªä»¥å¤ã®ãã¼ãã®ã¨ãã¯ã
[example.com]:60022
ã¨ã[192.0.2.23]:60022
ã®ããã«[]
ã¥ãã§è¡¨è¨ããã ,
ã§è¤æ°ã®ãã¹ãåã¾ãã¯IPã¢ãã¬ã¹ã並ã¹ããã¨ãã§ããããã¹ãåã¨IPã¢ãã¬ã¹ã並ã¹ã¦ãããã (ããã·ã¥åãã¦ããªãã¨ãã®ã¿)*
ã¯0æå以ä¸ã®ã¯ã¤ã«ãã«ã¼ãã¨ãã¦ä½¿ããã (ããã·ã¥åãã¦ããªãã¨ãã®ã¿)?
ã¯1æåã®ã¯ã¤ã«ãã«ã¼ãã¨ãã¦ä½¿ããã (ããã·ã¥åãã¦ããªãã¨ãã®ã¿)
ä¾ãã°ãGitHubã¨GitLabã®ããã® known_hosts
ã¯ä»¥ä¸ã®ããã«æ¸ããã
# GitHub -- marked CheckHostIP no github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== # GitLab gitlab.com,52.167.219.168 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY= gitlab.com,52.167.219.168 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9 gitlab.com,52.167.219.168 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
CheckHostIP
ããªãã«ãã
ãã¹ãéµã¯åºæ¬çã«ãæ¥ç¶ãããã¨ããDNSåã¨ç
§åãããããããã CheckHostIP
ãæå¹ã®å ´åãIPã¢ãã¬ã¹ã«å¯¾ãã¦ãç
§åãè¡ãããã
æ®éãDNSã®å¯¾å¿ä»ããå¤ãã£ã¦ãã¦ããæ¥ç¶å
ã®ãµã¼ãã¼ãæ³å®éãã®ãã¹ãéµãè¿ãã°ä¿¡é ¼ãã¦ãããã¯ããªã®ã§ã CheckHostIP
ã¯äºé²çãªæå³åããå¼·ãã¨æããããç¹ã«ãGitHubã®ããã«DNSã©ã¦ã³ãããã³ã使ã£ã¦ããå ´åã¯é¢åãªã®ã§ãä¸è¨ã®ã¯ã¤ã«ãã«ã¼ãã使ããããããã CheckHostIP
ãå¤ãã¦ãã¾ãã®ãããã¨æãã (GitHubã®IPã¢ãã¬ã¹ä¸è¦§)
StrictHostKeyChecking
ã®æå¹å
æ³å®ãã¦ããªããã¹ãéµãéããã¦ããã¨ããSSHã¯ä»¥ä¸ã®ããã«æ¯ãèãã
- å¥ã®ãã¹ãéµãæ¢ã«ç¥ã£ã¦ããå ´åãåçç¡ç¨ã§æ¥ç¶æå¦ã«ãªãããªã¬ãªã¬è©æ¬ºã§è¨ãã¨ããã®ãæ¯ã¡ãã俺ã ããæºå¸¯çªå·å¤ããããããã¨ãããã¤ã§ãããã©ããã¦ãæ¥ç¶ãããªã
known_hosts
ãæåãã³ãã³ãã§ãããå¿ è¦ãããã - æªç¥ã®ãã¹ãã®å ´å
StrictHostKeyChecking yes
ã®å ´å: æ¥ç¶æå¦ãããStrictHostKeyChecking no
ã®å ´å:known_hosts
ã«è¿½å ãã¦ç¶è¡ãããStrictHostKeyChecking ask
ã®å ´å(ããã©ã«ã): ã¦ã¼ã¶ã¼ã®çãã«å¿ãã¦ä¸ã®ã©ã¡ããã®å¦çãããã
.ssh/config
ã«å
¥ã£ã¦ãããã¹ãã«ããæ¥ç¶ããªããããªçæ´»ã§ããã°ãã©ããããã»ã©å¤ãããªãã¨æããçè
㯠StrictHostKeyChecking yes
ã«ãã¦ãããæ°è¦ãã¹ãã追å ããã¨ãããã®ãã¹ãã«å¯¾ãã¦ä¸æçã« StrictHostKeyChecking ask
ãä»ä¸ãã¦ããã
EC2ã¸ã®å¯¾å¦
EC2ã®ããã«ãåãIPã¢ãã¬ã¹ã®ãã·ã³ãæ¶ãããã¾ãç«ã¡ä¸ããããã¦ããã¨ãæ¢ç¥ã®ãã¹ãéµã¨ã®è¡çªã§ã©ããã¦ãæ¥ç¶æå¦ã«ãªã£ã¦ãã¾ãããã£ãã known_hosts
ãã¡ããã¨ç®¡çãã¦ããã®ã§ãããã¹ãã¨ãã£ã¿ã§æ¶ãã¦ãã¾ãã¨ããã¨æããããã¹ãéµã®ãã§ãã¯ãå¼·å¶çã«çç¥ããæ¹æ³ãããã«ã¯ããã
UpdateHostKeys
ã®æå¹å
UpdateHostKeys ask
ã¨ããã¨ããã¹ãéµãæ´æ°ãããã¨ãã«ãæ°ãããã¹ãéµã known_hosts
ã«è¿½å ãããã¨ãã§ããã(以åã®ãã¹ãéµã§èªè¨¼ãããã¨ã§éããã¦ããã®ã§ãåé¡ã¯ãªãã) ãµã¼ãã¼å´ããã¾ãè¨å®ããã°ããã¼ãã¼ãã¼ã·ã§ã³ããããã¨ãã§ããã
ã¾ã¨ãã¨å®£ä¼
known_hosts
ã¯ã¡ããã¨ç®¡çãããã¨ãã§ãããã¡ãªã¿ã« known_hosts
㨠authorized_keys
ãæ£ãããã¤ã©ã¤ãããVimãã©ã°ã¤ã³ãä½ã£ãã®ã§ãã²ã