Bibi's DevLog ๐ค๐
[TIL - Codesquad] ๊ฐ์ํ๊ฒฝ(VM)์ ๋ฆฌ๋ ์ค ์ฐ๋ถํฌ, ssh์ค์นํ๊ณ ์๊ฒฉ์ ์ํ๊ธฐ ๋ณธ๋ฌธ
[TIL - Codesquad] ๊ฐ์ํ๊ฒฝ(VM)์ ๋ฆฌ๋ ์ค ์ฐ๋ถํฌ, ssh์ค์นํ๊ณ ์๊ฒฉ์ ์ํ๊ธฐ
๋น๋น bibi 2021. 1. 8. 00:12
ํผ์ ์ฝ์งํ๋ค๊ฐ ๋๋ฒ๊น
์ด ์๋ผ์ ๋ฉํ ๊นจ์ก์ ๋์ฏค..
woody๊ฐ ์์ ์ ๋ธ๋ก๊ทธ ํฌ์คํ
์ ๊ณต์ ํด ์ฃผ์
์ ๋ค์ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผํ๋ ์ฑ๊ณตํ๋ค. ๐ญ๐ญ ๊ฐ์ฌํฉ๋๋ค!!! ๐โ๏ธ๐โ๏ธ
์ค๋ ํ ์ผ
- VM (VirtualBox) ์ค์น https://www.virtualbox.org
- VM์ ๋ฆฌ๋
์ค ์ฐ๋ถํฌ ์ค์น (ubuntu 20.04.1 LTS) redmuffler.tistory.com/439
- ๋ก์ปฌ์ Window Terminal๊ณผ Window PowerShell ์ค์น honux77.github.io/post/wsl-vs-code-setting/
- ๋ก์ปฌ์ WSL2 ์ค์น www.44bits.io/ko/post/wsl2-install-and-basic-usage
- ์ฝ๊ฐ์ ๋ฆฌ๋
์ค, ์ ๋ช
๋ น์ด ์ฌ์ฉํด๋ณด๊ธฐ
- ๊ทธ๋ฆฌ๊ณ ๋ง์ ์ฝ์ง..๐
TIL
Shell (์ / ์ ธ) ์ด๋?
: OS (์ด์์ฒด์ )์ ๋ํํ๋ ํ๋ก๊ทธ๋จ.
- ์ด์์ฒด์ ๋ด๋ถ(= ์ปค๋ kernel)๊ณผ ์ฌ์ฉ์ ์ฌ์ด๋ฅผ ์ด์ด์ฃผ๋ ์ญํ .
- ์ด์์ฒด์ ๋ด๋ถ(์ปค๋kernel) ๊ณผ ์ฌ์ฉ์ ์ฌ์ด์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ธ๋ ์ธต์ด๊ธฐ ๋๋ฌธ์ shell(๊ป๋ฐ๊ธฐ)์ด๋ผ๋ ์ด๋ฆ์ด ๋จ.
- ์ปค๋๊ณผ ์ฌ์ฉ์ ์ฌ์ด์์, ์ฌ์ฉ์์ ๋ช
๋ น์ ํด์ํ๊ณ ์ปค๋์ ๋ช
๋ น์ ์์ฒญํ๋ ์ญํ .
- ์
ธ์ ์ปค๋์์ ๋ถ๋ฆฌ๋ ๋ณ๋ ํ๋ก๊ทธ๋จ์ด๋ฉฐ, ๋ค์ํ ์
ธ์ด ์กด์ฌํ๊ณ ๊ฐ๋ฐ์ค์.
- CLI(Command Line Interface, ๋ช
๋ น ์ค ์ธํฐํ์ด์ค)์ GUI(Graphic User Interface, ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค) ๋ผ๋ ๋ ์ข
๋ฅ๋ก ๋ถ๋ฅํ ์ ์๋ค.
ko.wikipedia.org/wiki/%EC%85%B8 ์ฐธ๊ณ ํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์๋ฅผ ๋ค์ด..
๋ช ๋ น ํ๋กฌํํธ๋ ์๋์ฐ์ CLI ์ ธ์ด๋ฉฐ, bash๋ ์ ๋์ค์ CLI ์ ธ์ด๋ค. ์๋์ฐ ํ์๊ธฐ๋ ์๋์ฐ์ GUI ์ ธ์ด๋ค.
์ ธ์ ๊ธฐ๋ฅ
1. ๋ช
๋ น์ด ํด์ ๊ธฐ๋ฅ : ์ฌ์ฉ์์ ์ปค๋ ์ฌ์ด์์ ๋ช
๋ น์ ํด์ํด ์ ๋ฌํจ
2. ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ : ์
ธ ์์ฒด์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ด ์์ด, ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์์.
์ด ๊ธฐ๋ฅ์ ํตํด ๋ฐ๋ณต๋๋ ๋ช
๋ น์ด๋ฅผ ํ๋์ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ง๋ค ์ ์์ - ์
ธ ํ๋ก๊ทธ๋จ์ '์
ธ ์คํฌ๋ฆฝํธ'๋ผ๊ณ ํจ.
3. ์ฌ์ฉ์ ํ๊ฒฝ ์ค์ ๊ธฐ๋ฅ : ์ด๊ธฐํํ์ผ์ ํ์ฉํด ์ฌ์ฉ์์ ํ๊ฒฝ์ ์ค์ ํ ์ ์์.
ํ๊ฒฝ๋ณ์์ ๊ด๋ จ๋จ - ์
ธ ๊ณต๋ถ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ ์ค ํ๋.
jhnyang.tistory.com/57 ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ ์คํฌ๋ฆฝํธ Shell Script ๋?
: ์
ธ์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ํ์ฉํด ๋ง๋ ์
ธ ํ๋ก๊ทธ๋จ.
- ์ฃผ๋ก ํ๋ก๊ทธ๋จ ์คํ / ํ์ผ ์ด์ฉ / ๋ฌธ์์ด ์ถ๋ ฅ ์ ์ํด ์ฌ์ฉํจ.
- ์๋ฒ ์์
์๋ํ๋ฅผ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ตํ๋์ด์ผ ํจ.
- ์ ๊ธฐ๋ณธ ๋ช
๋ น์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ช ๊ฐ์ง ๋ฌธ๋ฒ์ด ์ถ๊ฐ๋๋ ํํ๋ก, ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ธ์ด๋ณด๋ค ๊ฐ๋จํจ.
SSH (ssh)๋?
: Secure Shell์ ์ฝ์๋ก, ๋คํธ์ํฌ์์ ๋ค๋ฅธ ์ปดํจํฐ์ ์๊ฒฉ ์ ์ ๋ฐ ๋ช ๋ น ์คํ์ ํ๊ฒ ํด ์ฃผ๋ ํ๋กํ ์ฝ์ ๋งํ๋ค.
ํธ์คํธ host = ๋คํธ์ํฌ ํธ์คํธ network host
: ๋คํธ์ํฌ ์(์ธํฐ๋ท์ ์ ์๋)์ ์์ด ๋ค๋ฅธ ์ปดํจํฐ์ ์ ๋ณด๊ตํ์ด ๊ฐ๋ฅํ ์ปดํจํฐ
ํธ์คํธ ์ปดํจํฐ
: ๋จ๋ง๊ธฐ๋ฅผ ์ด์ฉํด ์ ๋ณด๋ฅผ ์ ์ถ๋ ฅํ ์ ์๋ ์ปดํจํฐ. ๋๋ ์ค๋ฌผ ์ปดํจํฐ(VM ๋ด์ ์ปดํจํฐ์ ๋ฐ๋๊ฐ๋ )
๊ฒ์คํธ ์ปดํจํฐ
: VM์ ์ค์น๋ ๊ฐ์์ ์ปดํจํฐ.
ํธ์คํธ OS : ํธ์คํธ ์ปดํจํฐ์ ์ค์น๋ ์ด์์ฒด์ .
๊ฒ์คํธ OS : ๊ฒ์คํธ ์ปดํจํฐ ์์ ์ค์น๋์ด ์๋ ์ด์์ฒด์ .
www.ith.kr/chair/cin/cin0202.html, zetawiki.com/wiki/%ED%98%B8%EC%8A%A4%ED%8A%B8OS,_%EA%B2%8C%EC%8A%A4%ED%8A%B8OS ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค.
bash๋?
: ํ์ฌ ๋ฆฌ๋ ์ค์ ํ์ค ์ ธ์ด๋ฉฐ, ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ธ.
vi / vim ์ด๋?
: vi / vim ์๋ํฐ.
- ๋ชจ๋ ์ ๋์ค, ๋ฆฌ๋
์ค ํ๊ฒฝ์์ ์ฌ์ฉ๊ฐ๋ฅํ ๊ธฐ๋ณธ ๋ฌธ์ํธ์ง๊ธฐ.
- ์ค ๋จ์๊ฐ ์๋ ํ ํ๋ฉด์ ํธ์งํ๋ visual editor๋ผ๋ ๋ป์์ ์ ๋ํ๋ค.
- vim์ vi iMproved์ ์ฝ์๋ก, vi ํธํ ์๋ํฐ์ด๋ฉฐ ๋ฆฌ๋
์ค ๋ฐฐํฌํ์ ํฌํจ๋์ด ์๋ค.
- ๋ง์ฐ์ค ์์ด ํค๋ณด๋๋ง์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ด, ํฐ๋ฏธ๋ ํ๊ฒฝ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋จ.
ko.wikipedia.org/wiki/Vi, blog.lael.be/post/7321 ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค.
ํฌํธํฌ์๋ฉ Port Forwarding ์ด๋?
: ๊ณต์ ๊ธฐ์ IP๋ฅผ ์ธ๋ถ IP, ๊ณต์ ๊ธฐ ๋ด๋ถ์์ ์ฌ์ฉํ๋ IP๋ฅผ ๋ด๋ถ IP๋ผ๊ณ ํ๋ค. ์ธ๋ถ IP๋ ๊ณ ์ ๋์ด ์์ง๋ง, ๋ด๋ถ IP๋ ๋ณดํต ์ ๋ IP๋ฅผ ์ฐ๊ธฐ์ ๊ฐ์ด ๋งค๋ฒ ๋ฐ๋ ์ ์๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ํน์ ์ธ๋ถ IP์ ํฌํธ์ ์ ์ ์ ํญ์ ํน์ ๋ด๋ถ IP์ ํฌํธ๋ก ์ฐ๊ฒฐ์์ผ ์ฃผ๋ ๊ฒ์ Port Forwarding์ด๋ผ ํ๋ค.
์ถ์ฒ: https://cupjoo.tistory.com/2 [์ค์ง๋ ์ปดํจํฐ ๊ณต๋ถ]
์ค๋ ์ค์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ์๋ฉด..
- VM์ ๊ตฌ์ถํ๊ณ , VM์ Linux ubuntu๋ฅผ ์ค์นํ ๋ค, ์ฐ๋ถํฌ์์ SSH๋ฅผ ์ด์ฉํด ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ค
- SSH Client๋ฅผ ํตํด ๋ค๋ฅธ ์ปดํจํฐ(๋ก์ปฌ)์์ ํด๋น SSH Server(VM ubuntu)์ ์ ์ํ๋ค.
- ์ฆ ํ ์ปดํจํฐ(๋ก์ปฌ ์ปดํจํฐ) ์์ ๋ค๋ฅธ ์ปดํจํฐ(VM ์ปดํจํฐ)๋ก ์๊ฒฉ ์ ์๊ณผ ์๊ฒฉ ์กฐ์ข
์ ํ๋ ๊ฒ์ด๋ค.
์ค๋ ์ฌ์ฉํ ๋ช ๋ น์ด ์ ๋ฆฌ
<์ฐ๋ถํฌ>
$ sudo apt-get install ssh
: ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก SSH์๋ฒ๋ฅผ ์ค์นํ๋ ๋ช ๋ น์ด
$ sudo vi /etc/ssh/sshd_config
: ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก SSH ์๋ฒ ์ค์ ํ์ผ์ vi ํธ์ง๊ธฐ๋ก ์ฌ๋ ๋ช ๋ น์ด
$ sudo service ssh start
: ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก SSH์๋ฒ๋ฅผ ์คํํ๋ ๋ช ๋ น์ด
$ service ssh status
: ์๋ฒ์ ์คํ ์ํ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด
$ ps -ef |grep sshd
: ์คํ ์ค์ธ SSH์๋ฒ์ ํ๋ก์ธ์ค๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด
$ sudo netstat -ntlp |grep sshd
: ์คํ ์ค์ธ SSH์๋ฒ์ ip์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด.
$ ifconfig
: ํ์ฌ ์ปดํจํฐ์ ํ ๋น๋ (๋ด๋ถ)ip์ฃผ์๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด.
$ ls -l
: ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ๋ค์ ๊ถํ์ ํ์ธํ๋ ๋ช ๋ น์ด
$ mkdir ํด๋๋ช
: 'ํด๋๋ช '์ด๋ผ๋ ์ด๋ฆ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๋ ๋ช ๋ น์ด
$ chmod (๊ถํ ๋ช ๋ น) ํ์ผ/ํด๋๋ช
: ํ์ผ/๋๋ ํ ๋ฆฌ์ ๊ถํ์ (๊ถํ ๋ช ๋ น)์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด.
์ฐธ๊ณ : withcoding.com/103, www.fwantastic.com/2019/12/linux-permission.html ๊ฐ์ฌํฉ๋๋ค!
<vi / vim ํธ์ง๊ธฐ>
i๋ฅผ ๋๋ฅด๋ฉด INSERT(ํธ์ง๋ชจ๋) ์ํ๋ก, esc๋ฅผ ๋๋ฅด๋ฉด ๋ช ๋ น๋ชจ๋๋ก ์ ํํ ์ ์๋ค.
ํธ์ง๋ชจ๋์์ ๋ฌธ์ ๋ด์ฉ์ ์์ ํ ์ ์๋ค.
viํธ์ง๊ธฐ๋ฅผ ๋๊ฐ๊ธฐ ์ํด์๋, esc๋ฅผ ๋๋ฅธ ์ฝ๊ธฐ ์ํ์์
:wq ๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
: ๋ ๋ช ๋ นํ ํ์ฑํ๋ฅผ, wq๋ '์ ์ฅํ๊ณ ์ข ๋ฃ'๋ฅผ ๋ปํ๋ค.
-- ๋ด์ผ ๋ง์ ๊ณต๋ถ, ์ ๋ฆฌํ ๊ฒ๋ค --
<๋ฆฌ๋ ์ค ๋ช ๋ น์ด>
= bash์์ด ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๋ช ๋ น์ด
www.fun-coding.org/linux_basic2.html
itholic.github.io/linux-basic-command/
๋ฆฌ๋ ์ค์ ์ญ์ฌ
www.fun-coding.org/linux_basic1.html
๋ฆฌ๋ ์ค์ ์ ๋์ค์ ์ฐจ์ด
์ฌ๋ฌ๊ฐ์ง ์ ์ข ๋ฅ ์ ๋ฆฌ
www.fun-coding.org/linux_basic2.html
์ ธ ์คํฌ๋ฆฝํธ์ ํ์ฉํ ์ฌ๋ก ์กฐ์ฌ,์ ๋ฆฌ
๊ฐ๋ฐํ๊ฒฝ์์ ๋ฆฌ๋ ์ค์ ๋น์ทํ ํฐ๋ฏธ๋ ํ๊ฒฝ์ ์ค์ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
์ ์คํฌ๋ฆฝํธ ๊ฐ๋ , ๋ฌธ๋ฒ
www.fun-coding.org/linux_basic3.html
ssh์ ๋ํ ๋ ์์ธํ ์ค๋ช ..