LINUX
2016.09.21 / 15:31

SSH Key¶õ - ÀÌ·Ð °­Á - ºñ¹Ð¹øÈ£ ¾øÀÌ ·Î±×ÀÎ

XMaLL°ü¸®ÀÚ
Ãßõ ¼ö 230

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_rsaprivate key, Àý´ë·Î ŸÀο¡°Ô ³ëÃâµÇ¸é ¾ÈµÈ´Ù.
id_rsa.pubpublic 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