SSH Key¶õ - ÀÌ·Ð °Á - ºñ¹Ð¹øÈ£ ¾øÀÌ ·Î±×ÀÎ
SSH Key¶õ?
¼¹ö¿¡ Á¢¼Ó ÇÒ ¶§ ºñ¹Ð¹øÈ£ ´ë½Å key¸¦ Á¦ÃâÇÏ´Â ¹æ½ÄÀÌ´Ù.
SSH Key´Â ¾ðÁ¦ »ç¿ëÇϴ°¡?
- ºñ¹Ð¹øÈ£ º¸´Ù ³ôÀº ¼öÁØÀÇ º¸¾ÈÀ» ÇÊ¿ä·Î ÇÒ ¶§
- ·Î±×ÀÎ ¾øÀÌ ÀÚµ¿À¸·Î ¼¹ö¿¡ Á¢¼Ó ÇÒ ¶§
SSH Key°¡ µ¿ÀÛÇÏ´Â ¹æ½Ä
SSH Key´Â °ø°³Å°(public key)¿Í ºñ°ø°³ Å°(private key)·Î ÀÌ·ç¾îÁö´Âµ¥ ÀÌ µÎ°³ÀÇ °ü°è¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ SSH Key¸¦ ÀÌÇØÇϴµ¥ ÇÙ½ÉÀÌ´Ù. Å°¸¦ »ý¼ºÇÏ¸é °ø°³Å°¿Í ºñ°ø°³Å°°¡ ¸¸µé¾îÁø´Ù. ÀÌ Áß¿¡ ºñ°ø°³Å°´Â ·ÎÄà ¸Ó½Å¿¡ À§Ä¡ÇØ¾ß ÇÏ°í, °ø°³Å°´Â ¸®¸ðÆ® ¸Ó½Å¿¡ À§Ä¡ÇØ¾ß ÇÑ´Ù. (·ÎÄà ¸Ó½ÅÀº SSH Client, ¿ø°Ý ¸Ó½ÅÀº SSH Server°¡ ¼³Ä¡µÈ ÄÄÇ»Å͸¦ ÀǹÌÇÑ´Ù.)
SSH Á¢¼ÓÀ» ½ÃµµÇϸé SSH Client°¡ ·ÎÄà ¸Ó½ÅÀÇ ºñ°ø°³Å°¿Í ¿ø°Ý ¸Ó½ÅÀÇ ºñ°ø°³Å°¸¦ ºñ±³Çؼ µÑÀÌ ÀÏÄ¡ÇÏ´ÂÁö¸¦ È®ÀÎÇÑ´Ù.
SSH Key ¸¸µé±â
SSH Key¸¦ ÅëÇؼ ¼¹ö¿¡ Á¢¼Ó ÇÒ ¶§ Unix °è¿(¸®´ª½º, ¸Æ)¿¡¼´Â ssh-keygenÀ̶ó´Â ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¸é µÈ´Ù. À©µµ¿ì ¸Ó½Å¿¡¼´Â SSH Client ÇÁ·Î±×·¥ÀÌ ÀÚüÀûÀ¸·Î Á¦°øÇÏ´Â Å° »ý¼º ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¸é µÈ´Ù. °¢ ÇÁ·Î±×·¥ÀÇ ¸Þ´º¾óÀ» ÂüÁ¶ÇÏÀÚ. À̹ø ¼ö¾÷¿¡¼´Â Unix °è¿¿¡¼ key¸¦ »ý¼ºÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
ssh-keygen »ç¿ëÇϱâ
¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÑ´Ù. -t rsa´Â rsa¶ó´Â ¾ÏÈ£È ¹æ½ÄÀ¸·Î Å°¸¦ »ý¼ºÇÑ´Ù´Â Àǹ̴Ù.
1 2 | [axl@asterisk1 axl]$ ssh -keygen -t rsa Generating public/private rsa key pair. |
SSH Å°¸¦ ÀúÀåÇÒ À§Ä¡¸¦ ÁöÁ¤ÇÑ´Ù. ¿£Å͸¦ ´©¸£¸é ±âº» °æ·Î¿¡ ÀúÀåµÈ´Ù. ±âº» °æ·Î´Â ·Î±×ÀÎ ÇÑ »ç¿ëÀÚÀÇ È¨µð·ºÅ丮 ¾Æ·¡¿¡ .sshÀÌ´Ù. ($HOME/.ssh) SSH Client´Â ±âº»ÀûÀ¸·Î ÀÌ µð·ºÅ丮¿¡ ÀÖ´Â Å°¸¦ ÀÌ¿ëÇؼ ÀÎÁõÀ» ½ÃµµÇÑ´Ù.
1 | Enter file in which to save the key (/home/axl/.ssh/id_rsa): <return> |
passphrase ¸¦ ÀÔ·ÂÇÑ´Ù. passphrase´Â ÀÏÁ¾ÀÇ ºñ¹Ð¹øÈ£·Î ºñ°ø°³Å°¸¦ ÀÔ·ÂÇÑ °ªÀ¸·Î ¾ÏÈ£ÈÇÑ´Ù. ±ÇÀå °ªÀº 10~30 ¹®ÀÚÀÌ°í »ý·« °¡´ÉÇÏ´Ù. »ý·«Çϸé ÀÌ ºÎºÐÀÌ º¸¾È ȦÀÌ µÉ ¼ö Àֱ⠶§¹®¿¡ ÁÖÀÇÇÑ´Ù. ÀÚµ¿ ·Î±×ÀÎÀ» ¿øÇÑ´Ù¸é »ý·«ÇØ¾ß ÇÑ´Ù.
1 | Enter passphrase (empty for no passphrase): < Type the passphrase> |
ºñ¹Ð¹øÈ£¸¦ È®ÀÎÇÑ´Ù. °°Àº °ªÀ» ÀÔ·ÂÇÏ¸é µÈ´Ù. ¾Æ·¡¿Í °°ÀÌ Ãâ·ÂµÈ´Ù¸é Å°°¡ »ý¼ºµÈ °ÍÀÌ´Ù.
1 2 3 4 5 | Enter same passphrase again: < Type the passphrase> Your identification has been saved in /home/axl/.ssh/id_rsa. Your public key has been saved in /home/axl/.ssh/id_rsa.pub. The key fingerprint is: 0b:fa:3c:b8:73:71:bf:58:57:eb:2a:2b:8c:2f:4e:37 axl@myLocalHost |
Å°¸¦ È®ÀÎÇÑ´Ù.
1 | [axl@asterisk1 axl] ls -al ~/.ssh/ |
¾Æ·¡¿Í °°ÀÌ Ãâ·ÂµÇ¸é ¼º°øÇÑ °ÍÀÌ´Ù.
drwx------ 2 egoing egoing 4096 Feb 18 18:54 .
drwxr-xr-x 16 egoing egoing 4096 Mar 1 06:02 ..
-rw-rw-r-- 1 egoing egoing 790 Feb 19 06:04 authorized_keys
-rw------- 1 egoing egoing 1675 Feb 18 18:51 id_rsa
-rw-r--r-- 1 egoing egoing 395 Feb 18 18:51 id_rsa.pub
-rw-r--r-- 1 egoing egoing 2216 Feb 19 18:34 known_hosts
authorized_keys ÆÄÀÏÀº ¾øÀ»¼öµµ ÀÖ´Ù.
°¢ ÆÄÀÏ¿¡ ´ëÇÑ ¼³¸íÀº ¾Æ·¡¿Í °°´Ù.
id_rsa | private key, Àý´ë·Î ŸÀο¡°Ô ³ëÃâµÇ¸é ¾ÈµÈ´Ù. |
id_rsa.pub | public key, Á¢¼ÓÇÏ·Á´Â ¸®¸ðÆ® ¸Ó½ÅÀÇ authorized_keys¿¡ ÀÔ·ÂÇÑ´Ù. |
authorized_keys | ¸®¸ðÆ® ¸Ó½ÅÀÇ .ssh µð·ºÅ丮 ¾Æ·¡¿¡ À§Ä¡ÇÏ¸é¼ id_rsa.pub Å°ÀÇ °ªÀ» ÀúÀåÇÑ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ ´Ü¶ôÀ» ÂüÁ¶ |
.ssh µð·ºÅ丮´Â ¸Å¿ì Áß¿äÇÑ º¸¾È Á¤º¸°¡ ´ã±ä µð·ºÅ丮´Ù. µû¶ó¼ ÆÛ¹Ì¼Ç ¼³Á¤À» ²ÀÇØ¾ß Çϴµ¥ ¾Æ·¡¿Í °°Àº ¼³Á¤À» ±ÇÀåÇÑ´Ù. ¾Æ·¡ÀÇ ¸í·ÉÀ» ¼øÂ÷ÀûÀ¸·Î ½ÇÇàÇÑ´Ù. Æ۹̼ǿ¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â »ýÈ°ÄÚµù ¸®´ª½º ¼ö¾÷À» ÂüÁ¶ÇÑ´Ù. (¸®´ª½º ¼ö¾÷ ¹Ù·Î°¡±â)
1 2 3 4 5 | chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub chmod 644 ~/.ssh/authorized_keys chmod 644 ~/.ssh/known_hosts |
ÀÌÁ¦ id_rsa.pub ÆÄÀÏÀ» ¸®¸ðÆ® ¼¹öÀÇ $HOME/.ssh/authorized_keys ÆÄÀÏ¿¡ Ãß°¡ÇØÁà¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ±×¸²À» º¸ÀÚ.
SSH ServerÀÇ authorized_keys ÀÇ ³»¿ëÀÌ SSH ClientÀÇ id_rsa.pub ÆÄÀÏ°ú °°¾Æ¾ß ÇÑ´Ù. ±×·¡¼ ssh Á¢¼ÓÀ» ÇÒ ¶§ id_rsa ÆÄÀÏ°ú authorized_keys ÆÄÀÏÀÇ ³»¿ëÀ» ºñ±³ ÇÒ ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î SCP¸¦ »ç¿ëÇÑ´Ù. SCP´Â ÆÄÀÏÀ» Àü¼ÛÇÏ´Â ÇÁ·Î±×·¥Àε¥, ¾Æ·¡¿Í °°Àº Çü½ÄÀ» °®´Â´Ù.
scp $HOME/.ssh/id_rsa ¸®¸ðÆ® ¸Ó½ÅÀÇ ¾ÆÀ̵ð@¸®¸ðÆ® ¸Ó½ÅÀÇ È£½ºÆ® ÁÖ¼Ò:ÀúÀåÇÒ ÆÄÀÏ
À§ÀÇ Çü½Ä¿¡ µû¶ó¼ ·ÎÄà ¸Ó½ÅÀÇ id_rsa.pub ÆÄÀÏÀ» ¸®¸ðÆ® ¸Ó½ÅÀÇ È¨µð·ºÅ丮·Î Àü¼ÛÇغ¸ÀÚ. ¾Æ·¡´Â SSH Client°¡ ¼³Ä¡µÈ ·ÎÄà ¸Ó½Å¿¡¼ ½ÇÇàÇÏ´Â ¸í·ÉÀÌ´Ù.
1 | scp $HOME /.ssh/id_rsa.pub egoing@egoing.net:id_rsa.pub |
¾Æ·¡¿Í °°Àº ¸Þ½ÃÁö°¡ ¶á´Ù¸é Àü¼Û¿¡ ¼º°øÇÑ °ÍÀÌ´Ù.
id_rsa.pub 100% 395 0.4KB/s 00:00
ÀÌÁ¦ ¿ø°Ý ¸Ó½Å¿¡¼ Àü¼ÛÇÑ id_rsa.pub ÆÄÀÏÀ» authorized_keys ÆÄÀÏ¿¡ Ãß°¡Çغ¸ÀÚ. ¾Æ·¡ÀÇ ¸í·É¿¡¼ cat´Â µÚ¿¡ µû¶ó¿À´Â ÆÄÀÏÀÇ ³»¿ëÀ» ȸ鿡 Ãâ·ÂÇÏ´Â °ÍÀÌ°í, >> ´Â catÀÌ Ãâ·ÂÇÑ ³»¿ëÀ» authorized_keys ÆÄÀÏ¿¡ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù. ³»¿ëÀ» ±³Ã¼ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó Ãß°¡ÇÏ´Â °ÍÀ̶ó´Â Á¡¿¡ ÁÖÀÇÇÏÀÚ. ¸¸¾à ¸®¸ðÆ® ¸Ó½ÅÀ¸·Î Á¢¼ÓÇÏ´Â ¿©·¯°³ÀÇ ·ÎÄà ¸Ó½ÅÀÌ ÀÖ´Ù¸é °¢°¢ÀÇ ·ÎÄà ¸Ó½ÅÀÇ id_ras.pub ÆÄÀÏÀ» authorized_keys¿¡ Ãß°¡ÇØÁÖ¸é µÈ´Ù.
1 | cat $HOME /id_rsa.pub >> $HOME /.ssh/authorized_keys |
SSH¸¦ ÀÌ¿ëÇؼ Á¢¼ÓÇϱâ
Á¢¼ÓÀ» ½ÃµµÇÑ´Ù. egoing.net¿¡ Á¢¼ÓÀ» ÇÑ´Ù°í ÇÏ¸é ¾Æ·¡¿Í °°´Ù. Á¢¼Ó ¹æ¹ýÀº SSH Ŭ¶óÀ̾ðÆ®¸¦ Âü°íÇÑ´Ù. (Mac, ¸®´ª½º)
1 | ssh egoing.net |
ºñ¹Ð¹øÈ£ ¾øÀÌ Á¢¼Ó µÇ¾ú´Ù¸é ¼º°øÀûÀ¸·Î ¼³Á¤ÇÑ °ÍÀÌ´Ù.
¸¸¾à id_rsa ÆÄÀÏÀ» $HOME/.ssh/id_rsa¿¡ ¸¸µéÁö ¾Ê°í ´Ù¸¥ µð·ºÅ丮¿¡ ¸¸µé¾ú´Ù¸é -i ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.
Ȩµð·ºÅ丮¿¡ auth¶ó´Â À̸§ÀÇ ÆÄÀÏ¿¡ id_rsaÀÇ ³»¿ëÀÌ ´ã°Ü ÀÖ´Ù¸é ¾Æ·¡¿Í °°ÀÌ ÇÑ´Ù.
1 | ssh -i $HOME /auth egoing.net |
Á¢¼ÓÇÏ´Â °úÁ¤¿¡¼ ¸¹Àº ¿À·ù »óȲÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ÀÌ·² ¶§´Â sshÀÇ ¿É¼Ç Áß¿¡ -v¸¦ ÀÌ¿ëÇÏ¸é ¾îµð¿¡¼ ¹®Á¦°¡ ¹ß»ýÇß´ÂÁö ÃßÀûÇϴµ¥ µµ¿òÀÌ µÈ´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â -vv, -vvv¸¦ ÅëÇؼ ¿¶÷ ÇÒ ¼ö ÀÖ´Ù.
1 | ssh -v egoing.net |