์ถœ์ฒ˜ : https://yadon079.github.io/2021/etc/linux-command

 

Linux ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด ๋ชจ์Œ :: ๊ฐœ๋ฐœ์ž ํ•œ์„ ์šฐ

๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ จ ๋ช…๋ น์–ด

yadon079.github.io

๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ จ ๋ช…๋ น์–ด

๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก ํ™•์ธ

$ ls
$ ls -al : ๊ฐ์ถฐ์ง„ ํŒŒ์ผ์€ .์ด ๋ถ™๋Š”๋‹ค. a ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
$ ls -l

์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

$ mkdir [๋””๋ ‰ํ† ๋ฆฌ๋ช…]
$ mkdir -p [๋””๋ ‰ํ† ๋ฆฌ๋ช…/๋””๋ ‰ํ† ๋ฆฌ๋ช…/๋””๋ ‰ํ† ๋ฆฌ๋ช…...] : ์—ฌ๋Ÿฌ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

๋””๋ ‰ํ† ๋ฆฌ ์ด๋™

$ cd [๋””๋ ‰ํ† ๋ฆฌ๋ช…]
$ cd .. : ๋ถ€๋ชจ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™

tip) ๋””๋ ‰ํ† ๋ฆฌ๋ช…์ด ๋„ˆ๋ฌด ๊ธธ ๋•Œ, ์กฐ๊ธˆ๋งŒ ์“ฐ๊ณ  tabํ‚ค ๋ˆ„๋ฅด๋ฉด ์ž๋™์™„์„ฑ

๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ

$ rm -r [๋””๋ ‰ํ† ๋ฆฌ๋ช…]-r (remove directories and their contents recursively; ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜ ์žˆ๋Š” ๋‚ด์šฉ๋“ค๋„ ์‚ญ์ œํ•œ๋‹ค.)

ํŒŒ์ผ ๊ด€๋ จ ๋ช…๋ น์–ด

๋น„์–ด์žˆ๋Š” ํŒŒ์ผ ์ƒ์„ฑ

$ touch [ํŒŒ์ผ๋ช…]

ํŒŒ์ผ ์‚ญ์ œ

$ rm [ํŒŒ์ผ๋ช…]

ํŒŒ์ผ ๋ณต์‚ฌ

$ cp [ํŒŒ์ผ์œ„์น˜ ๋ฐ ํŒŒ์ผ์ด๋ฆ„] [๋ชฉ์ ์ง€ ํŒŒ์ผ์œ„์น˜ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„]

ํŒŒ์ผ ์ด๋™ (ํŒŒ์ผ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ๋•Œ์—๋„ ์‚ฌ์šฉ)

$ mv [ํŒŒ์ผ์œ„์น˜ ๋ฐ ํŒŒ์ผ์ด๋ฆ„] [๋ชฉ์ ์ง€ ํŒŒ์ผ์œ„์น˜ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„]

$ mv [์›๋ž˜ ํŒŒ์ผ ์ด๋ฆ„] [๋ฐ”๊พธ๊ณ  ์‹ถ์€ ํŒŒ์ผ ์ด๋ฆ„]

ํŒŒ์ผ ๋งŒ๋“ค๊ณ  ํŽธ์ง‘ (nano ์—๋””ํ„ฐ)

$ nano [ํŒŒ์ผ๋ช…] : ์ƒˆ ํŒŒ์ผ ์ž‘์„ฑ or ์กด์žฌํ•˜๋Š” ํŒŒ์ผ ์ˆ˜์ •

ํŒŒ์ผ ๋‚ด์šฉ ๋ณด๊ธฐ

$ cat [ํŒŒ์ผ๋ช…]

ํŒŒ์ผ ์œ„์น˜ ๊ฒ€์ƒ‰

$ locate *.log : (ํ™•์žฅ์ž๊ฐ€ .log์ธ ํŒŒ์ผ ์ฐพ๊ธฐ)๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋’ค์ง€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(mlocate)๋ฅผ ๋’ค์ ธ์„œ ์ฐพ๋Š”๋‹ค.

$ find . *.log : ๋””๋ ‰ํ† ๋ฆฌ ๋’ค์ง

$ whereis ls$ whereis rm์‹คํ–‰ํŒŒ์ผ ์œ„์น˜ ์ฐพ๊ธฐ

ํ˜„์žฌ ์œ„์น˜ ํ™•์ธ

$ pwd

๋ช…๋ น์ฐฝ ๋‚ด์šฉ ์‚ญ์ œ

$ clear

๋ช…๋ น์–ด ๋„์›€๋ง ํ™•์ธ

$ [๋ช…๋ น์–ด] --help $ man [๋ช…๋ น์–ด] : /[์ฐพ๊ณ ์‹ถ์€๋‹จ์–ด] ์‚ฌ์šฉํ•ด์„œ ๋‹จ์–ด์ฐพ๊ธฐ ๊ฐ€๋Šฅ, ๊ทธ ์ƒํƒœ๋กœ n์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ ๋‹จ์–ด ์ฐพ๊ธฐ

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € (Package Manager)

  • ๊ธฐ๋ณธ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ํŒจํ‚ค์ง€(ํ”„๋กœ๊ทธ๋žจ)๊ฐ€ ์•„๋‹Œ ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€(ํ”„๋กœ๊ทธ๋žจ)๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋„์™€์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด (์•ˆ๋“œ๋กœ์ด๋“œ์˜ ๊ตฌ๊ธ€ํ”Œ๋ ˆ์ด, iOS์˜ ์•ฑ์Šคํ† ์–ด ๊ฐ™์€ ..)
  • apt, yum ๋“ฑ์ด ์žˆ์Œ.

ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ

$ apt-get update

  • ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€ ๋ชฉ๋ก๋“ค์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. (์„ค์น˜ํ•˜๊ธฐ์ „์—)
  • ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ํŒจํ‚ค์ง€ ๋ชฉ๋ก๋“ค์ด ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๊ฒƒ.

ํŒจํ‚ค์ง€ ์ฐพ๊ธฐ

$ apt-cache search [ํŒจํ‚ค์ง€๋ช…]

  • ์ €์žฅ๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์ค‘์— ํ•ด๋‹น ํŒจํ‚ค์ง€ ์ฐพ๊ธฐ..?
  • ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก๊นŒ์ง€ ๋‚˜์˜จ๋‹ค.

ํŒจํ‚ค์ง€ ์„ค์น˜

$ apt-get install [ํŒจํ‚ค์ง€๋ช…]

ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ

$ apt-get upgrade $ apt-get upgrade [ํŒจํ‚ค์ง€๋ช…]

ํŒจํ‚ค์ง€ ์‚ญ์ œ

$ apt-get remove [ํŒจํ‚ค์ง€๋ช…]

ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ์ˆœ์„œ (ํ•ญ์ƒ ์ด ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฅด๋Š”๊ฒŒ ์ข‹์Œ.)

  1. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ (apt-get update)
  2. ํŒจํ‚ค์ง€ ์„ค์น˜ (apt-get install)

๋‹ค์šด๋กœ๋“œ

ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ (wget ์‚ฌ์šฉ)

$ wget -O [์ €์žฅํ•  ํŒŒ์ผ๋ช…] [๋‹ค์šด๋กœ๋“œ url]

์†Œ์Šค์ฝ”๋“œ ๋‹ค์šด๋กœ๋“œ (git ์‚ฌ์šฉ)

1. git ์„ค์น˜
$ apt-get install git 2. ์†Œ์Šค์ฝ”๋“œ ๋‹ค์šด
$ git clone [์†Œ์Šค์ฝ”๋“œ url] [๋””๋ ‰ํ† ๋ฆฌ๋ช…] : ๋ช…์‹œํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์†Œ์Šค์ฝ”๋“œ ๋‹ค์šด๋ฐ›๋Š”๋‹ค.

why CLI?

1. ์ˆœ์ฐจ์  ์‹คํ–‰ (using semicolon) ‘ex) $ mkdir why; cd why’ + ์–ธ์ œ ์œ ์šฉํ•œ๊ฐ€? + ํ•˜๋‚˜ํ•˜๋‚˜์˜ ๋ช…๋ น๋“ค์ด 1000์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ•  ๋•Œ, ๋ช…๋ น์–ด ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์น˜๋Š” ๊ฒƒ๊ณผ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ํ•œ๋ฒˆ์— ์น˜๋Š” ๊ฒƒ์€ ์ฐจ์ด๊ฐ€ ์žˆ์Œ. (์—ฌ๋Ÿฌ ๊ฐœ ๋ช…๋ น์–ด๋ฅผ ํ•œ ๋ฒˆ์— ์น˜๋ฉด ์•Œ์•„์„œ ๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ๋งŒ ๋‚˜ํƒ€๋‚จ.)

2. ํŒŒ์ดํ”„๋ผ์ธ + ๋ช…๋ น์–ด์˜ ์—ฐ๊ฒฐ + ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์˜ ์ถœ๋ ฅ์„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ž…๋ ฅ์œผ๋กœ . . . + ์›ํ•˜๋Š” ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ํ–‰์„ ์ถœ๋ ฅ

ex) $ grep linux linux.txt : ‘linux’๊ฐ€ ํฌํ•จ๋œ ํ–‰ ์ถœ๋ ฅ
$ ls --help | grep sort : ls –help์—์„œ ‘sort’๊ฐ€ ํฌํ•จ๋œ ํ–‰์„ ์ถœ๋ ฅ (ls –help์˜ ์ถœ๋ ฅ์„ grep์˜ ์ž…๋ ฅ์œผ๋กœ)
$ ls --help | grep sort | grep file : ls –help์—์„œ ‘sort’์™€ ‘file’์ด ํฌํ•จ๋œ ํ–‰์„ ์ถœ๋ ฅ

IO Redirection

1. output
$ ls -l > result.txt : result.txt ํ™•์ธํ•ด๋ณด๋ฉด ls -l ์ถœ๋ ฅ๋ฌผ ๋‹ด๊ฒจ์žˆ์Œ.

2. error (์—๋Ÿฌ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด? ‘2>’ ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (standard error๋ฅผ ๊ฐ€๋ฆฌํ‚ด))
ex) ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— rename2.txt๊ฐ€ ์—†์„ ๋•Œ
$ rm rename2.txt 2> error.log : error.log์— ์—๋Ÿฌ ๋‚ด์šฉ์ด ๋‹ด๊ฒจ์žˆ์Œ.

3. input
$ cat hello.txt : cat์˜ cammand-line arguments๋กœ์จ ์—ญํ• 
$ cat < hello.txt : hello.txt ๋‚ด์šฉ์„ standard input์œผ๋กœ..
$ head -n1 < linux.txt > one.txt : linux.txt ๋‚ด์šฉ์„ input, one.txt์— ์ถœ๋ ฅ๋ฌผ์„ ์ €์žฅ

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

  • /bin: ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ๋ชจ์Œ
  • /sbin: ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ๋ชจ์Œ
  • /etc: ํ”„๋กœ๊ทธ๋žจ ์„ค์ •์„ ๊ด€๋ฆฌํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ
  • /etc/init.d: daemon์˜ ๋ชฉ์ ์„ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋žจ๋“ค ์žˆ์Œ.
  • /var: ๋‚ด์šฉ์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ๋“ค ๋ชจ์Œ
  • /tmp: ์ž„์‹œํŒŒ์ผ๋“ค. ์ปดํ“จํ„ฐ๊ฐ€ ๊บผ์ง€๋ฉด ๋‚ ์•„๊ฐ„๋‹ค.
  • /home: ์‚ฌ์šฉ์ž๋“ค์˜ ํŒŒ์ผ๋“ค์ด ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ
  • /lib: /bin๊ณผ /sbin์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ
  • /usr: ์œ ์ €๊ฐ€ ๋‹ค์šด๋ฐ›์€ ํ”„๋กœ๊ทธ๋žจ๋“ค ์ €์žฅ..

ํ”„๋กœ์„ธ์Šค ๊ด€๋ จ ๋ช…๋ น์–ด

ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก ํ™•์ธ

$ ps

๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก๊นŒ์ง€ ํ™•์ธ

$ ps aux
$ ps aux | grep apache2 : ‘ps aux’์˜ ์ถœ๋ ฅ์—์„œ apache2๊ฐ€ ํฌํ•จ๋œ ํ–‰ ์ถœ๋ ฅ

ํ”„๋กœ์„ธ์Šค ๊ฐ•์ œ ์ข…๋ฃŒ

$ kill [pid]

๊ทธ ์™ธ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก ํ™•์ธ ๋ช…๋ น์–ด

$ top
$ htop (top๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ์‹œ๊ฐ์ ์ธ ๋ฉด์—์„œ ๋” ์ข‹์Œ)

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰

ex) nano ์—๋””ํ„ฐ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ctrl + z -> ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋Œ์•„๊ฐ€๋„๋ก ๋“ฑ๋ก

๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋Œ์•„๊ฐ€๋Š” ํ”„๋กœ๊ทธ๋žจ ํ™•์ธ

$ jobs+๊ฐ€ ๋ถ™์–ด์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ -> fg ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ-๊ฐ€ ๋ถ™์–ด์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ -> fg ์‹คํ–‰ํ–ˆ์„ ๋•Œ, + ๋‹ค์Œ์œผ๋กœ ์‹คํ–‰๋  ํ”„๋กœ๊ทธ๋žจ

foreground๋กœ ๋Œ์•„๊ฐ€๊ธฐ

$ fg
$ fg %๋ฒˆํ˜ธ : ํ•ด๋‹น ๋ฒˆํ˜ธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ๊ทธ๋žจ ์ฃฝ์ด๊ธฐ

$ kill
$ kill -9 %๋ฒˆํ˜ธ : ๊ฐ•์ œ์ข…๋ฃŒ

daemon : ํ•ญ์ƒ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด apache2 ์›น์„œ๋ฒ„ ์„ค์น˜

$ sudo apt-get install apache2

์„ค์น˜ ํ›„ /etc/init.d์— ๊ฐ€๋ณด๋ฉด apache2๊ฐ€ ์žˆ๋‹ค.

apache2 ์ผœ๊ธฐ

$ sudo service apache2 start

์ž˜ ์ผœ์ง„์ง€ ํ™•์ธ

$ ps aux | grep apache2

apache2 ๋„๊ธฐ

$ sudo service apache2 stop

๊บผ์ ธ์žˆ๋Š”์ง€ ํ™•์ธ

$ ps aux | grep apache2 : ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Œ.

cron (์ •๊ธฐ์ ์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์€ ์ž‘์—…์ด ์žˆ์„ ๋•Œ)

$ crontab -e : ์ฒ˜์Œ ์‹คํ–‰ํ–ˆ์„ ๋•, ์—๋””ํ„ฐ ๊ณจ๋ผ์•ผ ํ•จ

m h dom mon dow command

  • m: ๋ถ„ ์ฃผ๊ธฐ ex) 10: ๋งค ์‹œ๊ฐ„ 10๋ถ„์— ํ•œ ๋ฒˆ
    ex) */1: 1๋ถ„์— ํ•œ ๋ฒˆ
  • h: ์‹œ๊ฐ„ ์ฃผ๊ธฐ ex) *: ์‹œ๊ฐ„์— ์ƒ๊ด€ ์—†์ด
    ex) 1: ๋งค 1์‹œ์—
  • dom: day of month ex) 24: ๋งค ๋‹ฌ 24์ผ์— ํ•œ ๋ฒˆ
  • mon: month
  • dow: day of week (์š”์ผ)
  • command: ์ฃผ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด

ํ…Œ์ŠคํŠธ

  1. command ์ž๋ฆฌ์— date >> date.log ์ž…๋ ฅ (»๋Š” ํ•ด๋‹น ํŒŒ์ผ ์•„๋ž˜๋กœ ์ญ‰ ์ถœ๋ ฅ๊ฒฐ๊ณผ๊ฐ€ ์Œ“์ž„)
  2. $ tail -f date.log (๊ผฌ๋ฆฌ์— ์ƒˆ๋กœ์šด ํ…์ŠคํŠธ๊ฐ€ ์ถ”๊ฐ€ ๋  ๋•Œ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ‘œ์‹œํ•ด์คŒ.)

์—๋Ÿฌ๊ฐ€ ๋‚œ ๊ฒฝ์šฐ๋„ ๋กœ๊ทธ๋กœ ๋‚จ๊ธฐ๋Š”๊ฒŒ ์ข‹๋‹ค.

*/1 * * * * date >> date.log 2>&1ํ‘œ์ค€ ์ถœ๋ ฅ์„ date.log์— ๋‚จ๊ธฐ๊ณ  ํ‘œ์ค€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜date.log์— ์—๋Ÿฌ๋„ ํ•จ๊ป˜ ์ €์žฅ๋จ

๋‹จ์ถ•ํ‚ค ๋งŒ๋“ค๊ธฐ

$ alias l='ls -al'
-> l์„ ์ž…๋ ฅํ•˜๋ฉด ls -al์˜ ์ถœ๋ ฅ์ด ๋‚˜์˜ด

.bashrc ํŒŒ์ผ

bash๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋จ.

๋‹ค์ค‘ ์‚ฌ์šฉ์ž

$ id : ํ˜„์žฌ ์ ‘์†ํ•œ ๊ณ„์ •์˜ ์ •๋ณด ํ™•์ธ
$ who : ์ด ์ปดํ“จํ„ฐ์— ๋ˆ„๊ฐ€ ์ ‘์†ํ•ด์žˆ๋Š”๊ฐ€

~$๋กœ ๋๋‚˜๋ฉด ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž
~#๋กœ ๋๋‚˜๋ฉด root ์‚ฌ์šฉ์ž

sudo (super user do)

  • ๋ฆฌ๋ˆ…์Šค๋Š” ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ์šด์˜์ฒด์ œ์ž„.
  • ์‚ฌ์šฉ์ž๋งˆ๋‹ค ์–ด๋–ค ์ผ์— ๋Œ€ํ•œ ๊ถŒํ•œ์ด ์žˆ์Œ.
  • ์ค‘์š”ํ•œ ์ผ์— ๋Œ€ํ•œ ๊ถŒํ•œ์€ super user(root)๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ๋”ฐ๋ผ์„œ super user์˜ ๊ถŒํ•œ์ด ํ•„์š”ํ•  ๋•Œ sudo๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ง์ ‘ root๊ณ„์ •์— ์ ‘์†ํ•ด์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์•ˆ์ „์„ ์œ„ํ•ด ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธ ํ›„ sudo๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž.

์‚ฌ์šฉ์ž ์ถ”๊ฐ€

$ sudo useradd -m [์‚ฌ์šฉ์ž๋ช…]
-> /home์— ๊ฐ€๋ณด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Œ.
-> ๊ทธ๋Ÿฌ๋‚˜, ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค๋ฉด ํ•ด๋‹น ๊ณ„์ •์—์„œ sudo ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ.

sudo ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ

$ sudo usermod -a -G sudo [์‚ฌ์šฉ์ž๋ช…]

๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •

$ sudo passwd [์‚ฌ์šฉ์ž๋ช…]

๋กœ๊ทธ์ธ (su ์‚ฌ์šฉ)

$ su - [์‚ฌ์šฉ์ž๋ช…]

permission (๊ถŒํ•œ)

$ ls -l
-> -rw-rw-r– 1 egoing egoing 0 Dec 4 23:19 perm.txt

type access mode
(r : read, w : write, x : execute)
owner group
-
file : -,
directory : d
[owner์˜ ๊ถŒํ•œ]
rw-
[group์˜ ๊ถŒํ•œ]
rw-
[other์˜ ๊ถŒํ•œ]
r--
gracenam gracenam

 

๊ถŒํ•œ ๋ณ€๊ฒฝ (chmod)

u: owner
g: group
o: other (not owner, not group)
a: all

$ chmod o-r perm.txtperm.txtํŒŒ์ผ์˜ other read ๊ถŒํ•œ ์‚ญ์ œ$ chmod o+r perm.txtperm.txtํŒŒ์ผ์˜ other read ๊ถŒํ•œ ํ—ˆ๊ฐ€

execute

$ nano hi-machine.sh

#!/bin/bash
echo 'hi hi hi hi'

ํŒŒ์ผ ์‹คํ–‰ ์‹œ๋„ 1
$ ./hi-machine.sh -> ํ—ˆ๊ฐ€ ๊ฑฐ๋ถ€ ๋œธ

ํŒŒ์ผ ์‹คํ–‰ ์‹œ๋„ 2
$ /bin/bash hi-machine.sh -> ์‹คํ–‰๋จ

owner ์‹คํ–‰ ๊ถŒํ•œ ์ถ”๊ฐ€ํ•˜๊ธฐ
$ chmod u+x hi-mashine.sh -> ํ•ด๋‹น ํŒŒ์ผ ์ดˆ๋ก์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋จ

ํŒŒ์ผ ์‹คํ–‰ ์‹œ๋„ 3
$ ./hi-machine.sh -> ์‹คํ–‰๋จ

directory

  • r ๋ชจ๋“œ: ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ์†Œ์†๋œ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ๋Š”์ง€?
  • w ๋ชจ๋“œ: ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€๋ฅผ ์ˆ˜์ • ํ•  ์ˆ˜ ์žˆ๋Š”์ง€? (ํŒŒ์ผ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ, ํŒŒ์ผ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋“ฑ)
  • x ๋ชจ๋“œ: ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€?
  • chmod ๋ช…๋ น์–ด์˜ -R ์˜ต์…˜: ์žฌ๊ท€์ ์œผ๋กœ ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๊ฒƒ๋“ค์˜ mode๋ฅผ ๋ชจ๋‘ ๋ฐ”๊พผ๋‹ค.

Numerical permissions

์ˆซ์ž ์˜๋ฏธ ์˜๋ฌธ ํ‘œํ˜„
0 none ---
1 execute only --x
2 write only -w-
3 write and execute -wx
4 read only r--
5 read and execute r-x
6 read and write rw-
7 read, write and execute rwx


ex) $ chmod 111 perm.txt -> –x–x–x๋กœ ๋ณ€๊ฒฝ๋จ.

’=’ ์‚ฌ์šฉ

์ถ”๊ฐ€/์‚ญ์ œ ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ ์•„์˜ˆ ๋ฐ”๋€Œ๋Š” ๊ฒƒ

$ chmod a=r perm.txt -> owner, group, other read๋งŒ ๊ฐ€๋Šฅ
$ chmod a= perm.txt -> owner, group, other ์•„๋ฌด ๊ถŒํ•œ ์—†์Œ.

IP ์ฃผ์†Œ ํ™•์ธ

$ ip addr : ์ปดํ“จํ„ฐ IP ํ™•์ธ (private ip)
$ curl ipinfo.io/ip : ipinfo.io/ip ์ž…์žฅ์—์„œ ์ ‘์†๋œ ip (public ip)

์›น์„œ๋ฒ„

์›น์„œ๋ฒ„ ์„ค์น˜ (apache2)

$ sudo apt-get update
$ sudo apt-get install apache2

์›น์„œ๋ฒ„ ์‹œ์ž‘, ์ค‘์ง€, ์žฌ์‹œ์ž‘

$ sudo service apache2 start
$ sudo service apache2 stop
$ sudo service apache2 restart

$ sudo apt-get install elinks
$ elinks http://10.0.2.15/ (์ปดํ“จํ„ฐ IP ์ž…๋ ฅ) -> local ์„œ๋ฒ„ ์ ‘์†

์›น์„œ๋ฒ„์˜ ์„ค์ •

/etc/apache2 ์— ์•„ํŒŒ์น˜ ์„ค์ •ํŒŒ์ผ ์žˆ์Œ. (apache2.conf)
์›น์„œ๋ฒ„๊ฐ€ ์–ด๋–ค storage์—์„œ ํŒŒ์ผ์„ ์ฐพ์„ ๊ฒƒ์ธ๊ฐ€๋Š” ์„ค์ •ํŒŒ์ผ์—์„œ ํ™•์ธ.
default๋Š” /var/www/html ์ธ๋ฐ, ์„ค์ • ๋ฐ”๊ฟ”์„œ ๋ณ€๊ฒฝ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ.
์ด๋•Œ /var/www/html๋ฅผ document root๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (์›นํŽ˜์ด์ง€๋ฅผ ์ฐพ๋Š” ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ)

์›น์„œ๋ฒ„์˜ ๋กœ๊ทธ ํ™•์ธ

/etc/apache2/sites-enabled/000-default.conf ๊ฐ€๋ณด๋ฉด ๋กœ๊ทธ๋Š” ์–ด๋””์— ๊ธฐ๋กํ• ์ง€ ๋ช…์‹œํ•ด๋‘” ๋ถ€๋ถ„์ด ์žˆ๋‹ค. (/var/log/apache2)

access.log: ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์›น์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ก์ด ๋‚จ๊ฒจ์ง.
error.log: ์—๋Ÿฌ ๋กœ๊ทธ ํ™•์ธ ๊ฐ€๋Šฅ

์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜๋ ค๋ฉด?
$ tail -f /var/log/apache2/access.log

SSH

  • ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋ฅผ ์›๊ฒฉ์ œ์–ด ํ•  ๋•Œ ์‚ฌ์šฉ
  • ํด๋ผ์ด์–ธํŠธ๋ฅผ ์›๊ฒฉ์ ‘์† ์‹œ๋„ํ•˜๋ ค๋Š” ์ปดํ“จํ„ฐ, ์„œ๋ฒ„๋ฅผ ์›๊ฒฉ์ ‘์† ๋‹นํ•˜๋Š” ์ปดํ“จํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ ์ปดํ“จํ„ฐ์—๋Š” ssh client ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์–ด์•ผํ•˜๊ณ  ์„œ๋ฒ„์—๋Š” ssh server ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ ์œ ๋‹‰์Šค ๊ณ„์—ด ์‹œ์Šคํ…œ์—์„œ๋Š” ssh ์„œ๋ฒ„๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค.
  • ์›๊ฒฉ ์ ‘์† ์‹œ๋„ $ ssh ๊ณ„์ •๋ช…@์ ‘์†์•„์ดํ”ผ
    (์ฒ˜์Œ ์ ‘์†ํ•˜๋ฉด ์ง„์งœ ์ ‘์†ํ•  ๊ฑด์ง€ ๋ฌผ์–ด๋ณด๋Š”๋ฐ yes ํ•˜๋ฉด ๋จ.)
  • ํฌํŠธ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ์ ‘์† ์‹œ๋„ $ ssh -p ํฌํŠธ๋ฒˆํ˜ธ ๊ณ„์ •๋ช…@์ ‘์†์•„์ดํ”ผ

ssh ์‹ฌํ™”์ˆ˜์—… - ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์—†์ด ๋กœ๊ทธ์ธํ•˜๊ธฐ

์ ‘์†์„ ์‹œ๋„ํ•˜๋Š” ์ปดํ“จํ„ฐ: ๋‚ด ์ปดํ“จํ„ฐ
์ ‘์† ๋Œ€์ƒ์ด ๋˜๋Š” ์ปดํ“จํ„ฐ: ์›๊ฒฉ ์ปดํ“จํ„ฐ

์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋‚ด ์ปดํ“จํ„ฐ์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ์ €์žฅํ•ด๋‘๋ฉด, ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋กœ๊ทธ์ธ ์—†์ด (๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์—†์ด/์ธ์ฆ ์—†์ด) ๋กœ๊ทธ์ธ ๊ฐ€๋Šฅ

์–ด๋–ค ์ปดํ“จํ„ฐ๊ฐ€ ์ธ์ฆ๋œ ์ปดํ“จํ„ฐ?
์›๊ฒฉ ์ปดํ“จํ„ฐ์˜ ~/.ssh/authorized_keys ํŒŒ์ผ์— ๋“ค์–ด์žˆ๋Š” ํ‚ค ๋ชฉ๋ก์„ ๋ณด๊ณ  ํŒ๋‹จํ•œ๋‹ค. (authorized_keys ํŒŒ์ผ์€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ  ์—†์„ ์ˆ˜๋„ ์žˆ์Œ.)

์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋‚ด ์ปดํ“จํ„ฐ๋ฅผ ์ธ์ฆ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

1. ssh ๊ณต๊ฐœํ‚ค ๋น„๋ฐ€ํ‚ค ๋งŒ๋“ค๊ธฐ [๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰]
$ ssh-keygen
Q. Enter file in which to save the key? : (์ €์žฅ๋˜๋Š” ์œ„์น˜) ์—”ํ„ฐ
Q. Enter passphrase : ๋น„๋ฐ€๋ฒˆํ˜ธ ์“ฐ๋ ค๋ฉด ์ž…๋ ฅํ•˜๊ณ  ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ ์—”ํ„ฐ
~/.ssh ๋“ค์–ด๊ฐ€๋ณด๋ฉด id_rsa(ssh private key), id_rsa.pub(ssh public key)๊ฐ€ ์žˆ์Œ. (id_rsa๋Š” ์ ˆ๋Œ€๋กœ ๋น„๊ณต๊ฐœ)

2. authorized_keys ํŒŒ์ผ ๋์—๋‹ค๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ์˜ id_rsa.pub ๋‚ด์šฉ์„ ๋ถ™์—ฌ๋„ฃ๋Š”๋‹ค. (ssh-copy-id ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ๋ถ™์—ฌ๋„ฃ์ž.) [๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰] -> $ ssh-copy-id (์›๊ฒฉ ์ปดํ“จํ„ฐ ๊ณ„์ •)@(์›๊ฒฉ ์ปดํ“จํ„ฐ ์ฃผ์†Œ) -> ์›๊ฒฉ ์ปดํ“จํ„ฐ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ

3. ์ž˜ ๋ถ™์—ฌ๋„ฃ์–ด์กŒ๋Š”์ง€ ํ™•์ธ [์›๊ฒฉ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰] $ cat ~/.ssh/authorized_keys

4. ๋กœ๊ทธ์ธ ์—†์ด ๋กœ๊ทธ์ธ ์‹œ๋„ [๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰] $ ssh (์›๊ฒฉ ์ปดํ“จํ„ฐ ๊ณ„์ •)@(์›๊ฒฉ ์ปดํ“จํ„ฐ ์ฃผ์†Œ) -> ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ์—†์ด ๋กœ๊ทธ์ธ ๊ฐ€๋Šฅ

ํฌํŠธ (port)

default port (๊ธฐ๋ณธ์ ์œผ๋กœ ์“ฐ๋„๋ก ์•ฝ์†)
ex) ์›น์„œ๋ฒ„๋Š” 80, ssh ์„œ๋ฒ„๋Š” 22

  • ๊ฐ ์„œ๋ฒ„๋“ค์€ ํ•ด๋‹น ํฌํŠธ์—์„œ ๋Œ€๊ธฐ์ค‘์ด๋‹ค. (listen)
  • ์•ฝ 65000๊ฐœ์˜ ํฌํŠธ๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘์— 1024๊ฐœ์˜ well-known ํฌํŠธ๊ฐ€ ์žˆ๋‹ค. (์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ)

๋„๋ฉ”์ธ๊ณผ DNS (Domain Name System)

1. ์‚ฌ์šฉ์ž๊ฐ€ google.com ์ด๋ผ๊ณ  ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•˜๋ฉด 2. DNS ์„œ๋ฒ„๊ฐ€ google.com ์ด๋ฆ„์„ ๊ฐ€์ง„ IP๋ฅผ ์ฐพ์•„์„œ ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์•Œ๋ ค์ค€๋‹ค. 3. ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ๋Š” ๊ทธ IP ์ •๋ณด๋กœ google.com์— ์ ‘์†

  • /etc/hosts ํŒŒ์ผ: ์•„์ดํ”ผ-๋„๋ฉ”์ธ ๋ช…์‹œํ•ด๋‘” ๊ฒƒ?
  • ex) hostsํŒŒ์ผ์— 127.0.0.1 google.com ์ถ”๊ฐ€ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์— google.com ์ด๋ผ๊ณ  ์ž…๋ ฅํ–ˆ์„ ๋•Œ, 127.0.0.1 ์›น์„œ๋ฒ„์™€ ๋งค์นญ๋จ.
  • /etc/hosts์—์„œ ๋จผ์ € ์ฐพ์•„๋ณด๊ณ , ์ฐพ์•„๋ดค์„ ๋•Œ ์—†์œผ๋ฉด, DNS ์„œ๋ฒ„์—์„œ ์ฐพ๊ณ …
  • ๋งŒ์•ฝ /etc/hosts์— ์žˆ์œผ๋ฉด DNS ์„œ๋ฒ„๋Š” ๊ด€๋ จ์—†์Œ.
  • /etc/resolv.conf -> nameserver ์ ํ˜€์žˆ์Œ.
  • $ host [๋„๋ฉ”์ธ] -> ํ˜ธ์ŠคํŠธ ์ •๋ณด ๋‚˜์˜ด (์–ด๋–ค ์•„์ดํ”ผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€)

์„œ๋ธŒ๋„๋ฉ”์ธ

ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ ๊ตฌ์ž…์œผ๋กœ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
ex) admin.egoing.ga, blog.egoing.ga, news.egoing.ga

  • ์„œ๋กœ ๋‹ค๋ฅธ ์•„์ดํ”ผ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ
  • ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ์œผ๋กœ ์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜!

rsync

๋™์ž‘๋ฐฉ๋ฒ• ์˜ˆ์‹œ

$ mkdir src
$ mkdir dest

src ๋””๋ ‰ํ† ๋ฆฌ์•ˆ์— ํŒŒ์ผ ์ƒ์„ฑ
$ touch test{1..10} : test1 ~ test10๊นŒ์ง€ ์ƒ์„ฑ๋จ.

$ rsync -a src/ dest -> src ์•„๋ž˜ ์žˆ๋Š” ํŒŒ์ผ๋“ค์ด dest ํด๋”์•ˆ์œผ๋กœ ๋ณต์‚ฌ๋œ๋‹ค.
(a ์˜ต์…˜ : ์•„์นด์ด๋ธŒ ๋ชจ๋“œ๋กœ ๋™์ž‘. ํŒŒ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋””๋ ‰ํ† ๋ฆฌ๋„ ๋ณต์‚ฌ๋˜๊ณ , ๊ถŒํ•œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์†์„ฑ์ด ๋ฐ”๋€Œ๋ฉด ๋ฐ˜์˜๋˜๊ณ , ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค๋งŒ ์ „์†ก)

dest ํด๋” ๊ฐ€์„œ test10 ์‚ญ์ œ
$ rm test10

$ rsync -av(๋” ์ž์„ธํ•˜๊ฒŒ ์ถœ๋ ฅ) src/ dest ์‹คํ–‰ -> dest์•ˆ์— ์žˆ๋˜ test10 ๋‹ค์‹œ ์ƒ๊น€.

src ํด๋” ๊ฐ€์„œ ์ถ”๊ฐ€ ํŒŒ์ผ ์ƒ์„ฑ ํ›„, rsync ํ•ด๋ณด๋ฉด src์—์„œ ๋งŒ๋“  ํŒŒ์ผ ๋งŒ์ด dest ์•ˆ์— ์ƒ์„ฑ๋œ๋‹ค.

์ปดํ“จํ„ฐ์™€ ์ปดํ“จํ„ฐ ์‚ฌ์ด์— ์ „์†ก

$ rsync -azP ~/rsync/src/ k8805@๋Œ€์ƒ์•„์ดํ”ผ:~/rsync/dest

  • az: ์••์ถ•ํ•œ๋‹ค.
  • P: ์ „์†ก๋˜๋Š” ์ƒํ™ฉ์„ progress bar๋กœ ๋ณด์—ฌ์ค€๋‹ค.

์•”ํ˜ธํ™”

๋Œ€์นญ์ ์ธ ๋ฐฉ์‹

์–ด๋–ค ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ํ•  ๋•Œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์•”ํ˜ธํ™” ํ–ˆ์„ ๋•Œ์™€ ๋ณตํ˜ธํ™” ํ–ˆ์„ ๋•Œ ๊ฐ™์€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋Œ€์นญ์ ์ธ๋ฐฉ์‹

๋น„๋Œ€์นญ์ ์ธ ๋ฐฉ์‹

  • ssh-keygen์œผ๋กœ ๋งŒ๋“  private key, public key๋ฅผ ์‚ฌ์šฉ
  • ์•”ํ˜ธํ™” ํ•  ๋•Œ์—๋Š” private key, ๋ณตํ˜ธํ™” ํ•  ๋•Œ์—๋Š” public key๋ฅผ ์‚ฌ์šฉ
  • private key, public key๋Š” ์ง๊ฟ์ด๋‹ค.
  • ๋Œ€ํ‘œ ์ฃผ์ž: RSA

RSA ๋™์ž‘๋ฐฉ์‹

  1. ssh client๋กœ ssh server์— ์ ‘์†ํ•˜๋ฉด
  2. ssh server๋Š” ๋žœ๋คํ•œ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ client ์ปดํ“จํ„ฐ์—๊ฒŒ ์ค€๋‹ค.
  3. ssh client๋Š” id_rsa ํŒŒ์ผ(private key)์ด ์žˆ๋Š”์ง€ ์ฐพ๋Š”๋‹ค. ์žˆ์œผ๋ฉด ๊ทธ ํŒŒ์ผ์„ ์ด์šฉํ•ด์„œ ์ „๋‹ฌ ๋ฐ›์€ ๋žœ๋คํ‚ค๋ฅผ ์•”ํ˜ธํ™” ์‹œํ‚จ๋‹ค.
  4. ์•”ํ˜ธํ™”๋œ ๊ฒฐ๊ณผ๋ฅผ ssh server์—๊ฒŒ ์ „์†ก
  5. ssh server๋Š” authorized_keys์— ์ €์žฅ๋œ ๊ณต๊ฐœํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์ „๋‹ฌ๋ฐ›์€ ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ์„ ๋ณตํ˜ธํ™” ํ•œ๋‹ค.
  6. ๋ณตํ˜ธํ™”๋œ ๊ฒฐ๊ณผ๊ฐ€ ์ฒ˜์Œ์— ์ „๋‹ฌํ•œ ๋žœ๋คํ‚ค์™€ ๊ฐ™์œผ๋ฉด ์ธ์ฆ ์„ฑ๊ณต

Reference

๋ฐ˜์‘ํ˜•

+ Recent posts