[Mac] ๋ฒ์ถ์ผ๋ฐ์ค(VirtualBox)์ ์ค์น๋ ์ฐ๋ถํฌ(Ubuntu) ๋งฅ ํฐ๋ฏธ๋์์ ์ ์ํ๊ธฐ
#
๊ฐ์๋จธ์ ์ ๋๋ฆฌ๋ค.๋ํ์์ผ๋ก์ ์ฐ๋ ๋ฆฌ๋ ์ค(Linux) ์ค์น๊ธฐ - 2ํธ
์ง๋ ๊ธ์์ ๋ฒ์ถ์ผ๋ฐ์ค(VirtualBox)์ ์ฐ๋ถํฌ(Ubuntu)๋ฅผ ์ค์นํ๋ ๋ฒ์ ๋ค๋ค๋ค. ์ค์นํ๊ณ ์ฌ์ฉํด๋ณธ ์๊ฐ์ "๋๋ฌด ๋๋ฆฌ๊ณ ๋ถํธํ๋ค" ์๋ค. ๋ด๊ฐ ๋๋ผ๊ธฐ์ ๋ถํธํ ์ ์๋๋ต ์ด์ ๋ ์๋ค.
๊ตฌ๊ธ๋งํ๋ ค๋ฉด ๋๋ฌด ๋๋ ค์ ๋งฅ์์ ํด์ผํจ
๊ตฌ๊ธ๋งํ๊ณ ์ฝ๋ ๋ณต๋ถํ๋๋ฐ ๋จ์ถํค๊ฐ ๋ค๋ฆ
์ฐ๋ถํฌ ํฐ๋ฏธ๋์์ ํฐ์นํจ๋๋ก ์คํฌ๋กคํ๋ ์๋๊ฐ ๋๋ฌด ๋น ๋ฆ
๋งฅ๋ถ์์ ๋นํ๊ธฐ ์ด๋ฅํ๋ ์๋ฆฌ๊ฐ ๋ค๋ฆผ
๋ฒ์ถ์ผ๋ฐ์ค ์ค์ ์ ํตํด ๊ฐ์๋จธ์ ์ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ํ ๋นํด์ฃผ๋ฉด ๋นจ๋ผ์ง ๊ฒ์ด๊ณ , ๋จ์ถํค๋ ์ธํ ํ ์ ์์ง๋ง ์๋ฌด๋๋ ์ต์ํ์ง ์์๋ค.
๋ฆฌ๋ ์ค๋ฅผ ์ฐ๋ ํ์ฌ ๋ชฉ์ ์ด ๋ํ๊ต ์ค์ต๊ณผ ๊ณผ์ ๋ฅผ ์ํํ๊ธฐ ์ํด์์ด๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋ฐํ๋ ํ๊ฒฝ์ ๊ฐ์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ๊ตฌ๊ธ๋ง์ ํด๋ณด์๊ณ , ์ฐพ์ ํด๊ฒฐ์ฑ ์ SSH๋ฅผ ํตํด๋ฒ์ถ์ผ๋ฐ์ค์ ์ค์น๋ ์ฐ๋ถํฌ ์๋ฒ์ ์ ์ํ๋ ๊ฒ์ด์๋ค.
์ด ์ญ์ ์ธํ ํ๋ ๋ฒ์ด ๊น๋ค๋ก์ ๊ธฐ ๋๋ฌธ์ ๊ธ๋ก ๋จ๊ฒจ๋๋๋ค.
#
๋ฒ์ถ์ผ๋ฐ์ค ์ค์ ๋จผ์ ๋งฅ์ VirtualBox > ํ์ผ > ํธ์คํธ ๋คํธ์ํฌ ๊ด๋ฆฌ์๋ก ๋ค์ด๊ฐ์ ๋คํธ์ํฌ ์ด๋ํฐ๋ฅผ ๋ง๋ค์ด ์ค๋ค.
๋ง๋ค๊ณ ๋๋ฉด vboxnet()์ด๋ผ๋ ์ด๋ํฐ๊ฐ ์์ฑ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋งฅ ํฐ๋ฏธ๋์์ ifconfig์ผ๋ก ํ์ธํด๋ณด๋ฉด vboxnet() ์ธํฐํ์ด์ค๊ฐ ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ VirtualBox ๊ด๋ฆฌ์์ ์ฐ๋ถํฌ ์ค์ ์์ ๋คํธ์ํฌ๋ฅผ ํ์ธํด๋ณด๋ฉด, ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ํฐ 1์ด NAT๋ก ์ค์ ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ผ๋จ ๋จผ์ ์ด๋ํฐ 2์์ ์ถ๊ฐํ๋ vboxnet() ํธ์คํธ ์ ์ฉ ์ด๋ํฐ๋ฅผ ์ถ๊ฐํด์ค๋ค.
#
์ฐ๋ถํฌ ์ค์ ๊ทธ๋ฆฌ๊ณ ๋์ ์ฐ๋ถํฌ์ ๋ค์ด๊ฐ์ ์ธํฐ๋ท ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ธํด๋ณธ๋ค. ์ค์ ๋ ๋คํธ์ํฌ 2๊ฐ๊ฐ ์ฐ๊ฒฐ๋จ ์ํ๋ก ๋์ด ์์ผ๋ฉด ์ ์์ด๋ค.
์ฐ๋ถํฌ์์ firefox ๋ธ๋ผ์ฐ์ ๋ ์ ๋์ํ๋์ง ํ์ธํด๋ณธ๋ค.
#
ssh & ifconfig์ฐ๋ถํฌ์์ ifconfig์ ํตํด ip์ฃผ์๋ฅผ ์์์ผ ํ๋ค. ์ด๊ธฐ์ ifconfig์ด ์ค์น๋์ด ์์ง์๋ค๋ฉด ์๋์ ๋ช ๋ น์ด๋ก ์ค์นํ ์ ์๋ค. ์ด ๋ ์ฐ๋ถํฌ ๊ณ์ ์ํธ๊ฐ ํ์ํ๋ค.
sudo apt install net-tools
์ค์น๊ฐ ๋ ์ดํ ๋ค์ ifconfig์ ํด๋ณด๋ฉด ๋ ๊ฐ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๊ฐ ๋์ค๋๋ฐ, enp0s3
, enp0s8
์ด๋ค. ์ด ๋ enp0s8
๊ฐ ์ด๋ํฐ 2๋ก ์ฐ๊ฒฐํ vboxnet()์ด๊ณ , ์ด์ด๋ํฐ์ inet ๋ค๋ก ์ด์ด์ง๋ ipv4 ์ฃผ์๊ฐ ํ์ํ๋ค.
์ฌ๊ธฐ์ ipv4 ์ฃผ์๊ฐ 192.168.56.xxx
๋ผ ํ๋ฉด ๋งฅ(ํธ์คํธ)์์ ssh๋ก ์ด ์ฃผ์๋ฅผ ํตํด์ ๊ทผํ ์ ์๋ค.
์ด์ ์ฐ๋ถํฌ์์ ssh ์๋ฒ๋ฅผ ์คํํด์ฃผ์ด์ผ ํ๋ค. ๋จผ์ ssh๊ฐ ์ค์น๋์ด ์์ง ์๋ค๋ฉด ์๋์ ๋ช ๋ น์ด๋ก ์ค์นํ ์ ์๋ค. ์ญ์ ์ฐ๋ถํฌ ๊ณ์ ์ํธ๊ฐ ํ์ํ๋ค.
sudo apt-get install ssh
์ค์น๊ฐ ์๋ฃ๋๋ฉด service ssh start
๋ช
๋ น์ด๋ก ssh ์๋ฒ๋ฅผ ์คํํ๋ค. ps -ef | grep ssh
ssh ํ๋ก๊ทธ๋จ์ด ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋์ง ํ์ธํ ์ ์๋ค. sshd ๋ผ๊ณ ๋์ด์๋ ํ๋ก์ธ์ค๊ฐ ๋ณด์ธ๋ค๋ฉด ์๋ฒ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฆฐ ๊ฒ์ด๋ค. ์๋ฒ๋ฅผ ๋ซ๋ ๋ช
๋ น์ด๋ service ssh stop
์ด๋ค.
service ssh startps -ef | grep ssh
์ด์ ์ฐ๋ถํฌ ์ค์ ์ด ์๋ฃ๋์๋ค.
#
๋งฅ ํฐ๋ฏธ๋์์ ssh๋ก ์ฐ๋ถํฌ ์ ์์ฐ๋ถํฌ์์ ํ์ธํ ipv4 ์ฃผ์๋ก ๋งฅ ํฐ๋ฏธ๋์์ ssh๋ก ์ ์ํ ์ ์๋ค. ipv4 ์ฃผ์๊ฐ 192.168.56.xxx
๋ผ๋ฉด ๋งฅ์์ ํฐ๋ฏธ๋์ ์คํํ๊ณ ssh username@192.168.56.xxx
๋ฅผ์คํํ๋ค. ์ฐ๋ถํฌ์ ์ํธ๋ฅผ ์
๋ ฅํ๋ฉด ์๋์ ๊ฐ์ ๋ด์ฉ์ด ์ถ๋ ฅ๋๊ณ ์ฐ๋ถํฌ ์๋ฒ์ ์ ์ํ๊ฒ ๋๋ค.
์ด์ ๋งฅ ํฐ๋ฏธ๋์์ ํ๋ก๊ทธ๋๋ฐํ ์ ์๋ค!
๋งฅ ํฐ๋ฏธ๋์์ ์ฐ๋ถํฌ ์๋ฒ์์ ๋์ค๊ณ ์ถ๋ค๋ฉด exit
์ ์ฌ์ฉํ๋ฉด ๋๋ค.
#
์ถ๊ฐ ์ธํ#
ssh ํค ๋ฑ๋ก๋งฅ์์ ์ฐ๋ถํฌ์ ์ ์ํ๊ธฐ ์ํด ssh username@192.168.56.xxx
๋ฅผ ์
๋ ฅํ๋ฉด ์ํธ๋ฅผ์
๋ ฅํด์ผ ํ๋ค. ์ด ์ํธ ์
๋ ฅ ๊ณผ์ ์ ssh ํค๋ฅผ ๋ฑ๋กํ๋ฉด ์๋ตํ ์ ์๋ค.
์๋์ ๋งํฌ๋ฅผ ํตํด ์๋ฆฌ๋ฅผ ํ์ธํ ์ ์๋ค.
SSH Key - ๋น๋ฐ๋ฒํธ ์์ด ๋ก๊ทธ์ธ - ์๊ฒฉ์ ์ด
์๋ฒ๊ฐ Public key๋ฅผ ๊ฐ๊ณ ์๊ณ , ํด๋ผ์ด์ธํธ๊ฐ Private key๋ฅผ ํตํด ์๋ฒ์ ์ ๊ทผํ๋๋ฐฉ์์ธ๋ฐ, ํค ํ์ด๋ ํด๋ผ์ด์ธํธ ์ธก์์ ๋ง๋ ๋ค. ๋ฐ๋ผ์ ์ฐ๋ถํฌ(์๋ฒ)์ ์ ์ํ๋ ค๋๋งฅ( ํด๋ผ์ด์ธํธ)์์ ํค๋ฅผ ๋ง๋ ๋ค.
ssh-keygen -t rsa
๋ฅผ ์คํํด ssh ํค ํ์ด๋ฅผ ๋ง๋ ๋ค. -t rsa
๋ rsa
๋ผ๋ ์ํธํ ๋ฐฉ์์ผ๋ก ํค๋ฅผ ์์ฑํ๋ค๋ ๋ป์ด๋ค.
$ ssh-keygen -t rsaGenerating public/private rsa key pair.
SSH ํค๋ฅผ ์ ์ฅํ ์์น๋ฅผ ์ง์ ํ๋๋ฐ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด ๊ธฐ๋ณธ ๊ฒฝ๋ก (\$HOME/.ssh)์ ์ ์ฅ๋๋ค. ๊ทธ๋ฆฌ๊ณ passphrase๋ฅผ ์ ๋ ฅํ๋๋ฐ passphrase๋ ์ผ์ข ์ ๋น๋ฐ๋ฒํธ๋ก ๋น๊ณต๊ฐํค๋ฅผ ์ ๋ ฅํ ๊ฐ์ผ๋ก ์ํธํํ๋๋ฐ ์๋ ๋ก๊ทธ์ธ์ ์ํ๋ค๋ฉด ์๋ตํด์ผํ๋ค.
๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํ๋ฉด ๊ฐ์ ๊ฐ์ผ๋ก ์๋ตํ๋ฉด ๋๊ณ , ๊ทธ๋ฌ๋ฉด ํค๊ฐ ์์ฑ๋๋ค.
์๋์ ๋ช ๋ น์ผ๋ก ํค๋ฅผ ํ์ธํ ์ ์๋ค.
ls -al ~/.ssh/
๊ทธ๋ฌ๋ฉด ์ด์ Public key๋ฅผ ์ฐ๋ถํฌ ์๋ฒ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. ์๋์ ๋ช ๋ น์ผ๋ก ์ฐ๋ถํฌ์๋ฒ๋ก ํ์ผ์ ๋ณด๋ผ ์ ์๋ค.
scp $HOME/.ssh/id_rsa.pub username@192.168.56.xxx:id_rsa.pub
192.168.56.xxx
๋ ์ฐ๋ถํฌ์ ipv4 ์ฃผ์์ด๋ค.
์๋์ ์ฌ์ง์ฒ๋ผ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ฉด ์ฑ๊ณต์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ก๋ id_rsa.pub ํ์ผ์ ์ฐ๋ถํฌ์ $HOME/.ssh/authorized_keys
์ ์ถ๊ฐํด์ค๋ค. ์ฐ๋ถํฌ์์ ์๋์ ๋ช
๋ น์ผ๋ก ์ถ๊ฐํ ์ ์๋ค.
cat $HOME/id_rsa.pub >> $HOME/.ssh/authorized_keys
๋ง์ฝ ์ฐ๋ถํฌ์ /.ssh
๋๋ ํ ๋ฆฌ๋ authorized_keys
ํ์ผ์ด ์๋ค๋ฉด ๋จผ์ id_rsa.pub ํ์ผ ๋ด์ฉ์ ํ๋ฉด์ ์ถ๋ ฅํ๊ณ , ํค ๋ด์ฉ์ ๋ณต์ฌํ๋ค.
๊ทธ๋ฆฌ๊ณ ํ ๋๋ ํ ๋ฆฌ์์ mkdir ~/.ssh
๋ก ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ค๋ค. ๊ทธ๋ฆฌ๊ณ echo [public_key_string] >> ~/.ssh/authorized_keys
๋ฅผ ์คํํ๋ค.
cat ~/.ssh/id_rsa.pubmkdir ~/.sshecho [public_key_string] >> ~/.ssh/authorized_keys
์ฑ๊ณต์ ์ผ๋ก ํค ํ์ด๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ์ ์ฅ๋๋ฉด ํธ์คํธ์์ ์ํธ ์ ๋ ฅ ์์ด ssh ๋ก ์ ์ํ ์ ์๋ค. ๋ง์ฝ ์ฒ์ ssh๋ก ์ ์ํ๋ ๊ฒ์ด๋ฉด ์๋์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค.
The authenticity of host 'foo.bar.com (111.111.11.111)' can't be established.ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.Are you sure you want to continue connecting (yes/no)? yes
์ฑ๊ณต!
#
alias ๋ฑ๋ก๋ง์ง๋ง์ผ๋ก ๋งฅ ํฐ๋ฏธ๋์์ ๋งค๋ฒ ssh username@192.168.56.xxx
์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋๊ฒ์ด ์๋นํ ๋ถํธํ๋ฏ๋ก ์์ run command์ alias๋ฅผ ๋ฑ๋กํด์ค๋ค.
๋งฅ์์ bash๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ~/bash_profile ์, zsh๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ~/zshrc์ alias๋ฅผ๋ฑ๋กํ๋ฉด ์ฌ์ฉ์๊ฐ ์ง์ ํ ๋จ์ถ ๋ช ๋ น๋ง์ผ๋ก ์ํ๋ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๋ค.
vim์ผ๋ก ~/bash_profile ๋๋ ~/zshrc ๋ฅผ ์ด๊ณ , ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ๋ค. ๋ณธ์ธ์ ์ฐ๋ถํฌ์ ์ ์ํ๋ค๋ ๋ป์ผ๋ก sshu
๋ผ๋ ๋ณ์นญ์ ์ฌ์ฉํ์๋ค.
alias sshu="ssh username@192.168.52.xxx"
๊ทธ๋ฆฌ๊ณ ์์ ๋ค์ ์คํํด์ค๋ค.
# bash๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐsource ~/.bash_profile
# zsh๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐsource ~/.zshrc
์ด์ sshu
ํค์๋ ๋ง์ผ๋ก ์ํธ์์ด ์ฐ๋ถํฌ์ ์ ์ ๊ฐ๋ฅํ๋ค!
#
๋ฒ์ถ์ผ๋ฐ์ค ๋คํธ์ํฌ ์ดํด์ถ๊ฐ์ ์ผ๋ก ๋ฒ์ถ์ผ๋ฐ์ค์ ๋คํธ์ํฌ๋ฅผ ์์ธํ ์ดํดํ๋ ค๋ฉด ์ด ๊ธ์ ์ฝ์ด๋ณด์.
[VM] VirtualBox ๋คํธ์ํฌ ์ค์ ์์ธ ๋ถ์
#
์ฐธ๊ณ ์๋ฃVirtualBox(Ubuntu/Linux) ๋ธ๋ฆฟ์ง๋ฅผ ์ด์ฉํ ssh ์๊ฒฉ์ ์ํ๊ธฐ