- SSH (Secure Shell)์ ๋คํธ์ํฌ ์์ ๋ค๋ฅธ ์ปดํจํฐ์ ๋ก๊ทธ์ธํ๊ฑฐ๋ ์๊ฒฉ ์์คํ
์์ ๋ช
๋ น์ ์คํํ๊ณ ๋ค๋ฅธ ์์คํ
์ผ๋ก ํ์ผ์ ๋ณต์ฌํ ์ ์๋๋ก ํด์ฃผ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๋๋ ํ๋กํ ์ฝ์ด๋ค.
- SSH๋ ์์ฉ ๊ณ์ธต์ ์ํด์๋ค. (TCP, UDP๋ ๊ทธ ์๋์ธต์ธ ์ ์ก ๊ณ์ธต)
- TCP๋ง์ ์ฌ์ฉํ์ฌ ํต์ ํ๋ค.
- SSH๋ ๊ธฐ์กด์ ftp, telnet ๋ฑ์ ๋์ฒดํ๊ธฐ ์ํด ์ค๊ณ๋์์ผ๋ฉฐ, ๊ฐ๋ ฅํ ์ธ์ฆ ๋ฐฉ๋ฒ ๋ฐ ์์ ํ์ง ๋ชปํ ๋คํธ์ํฌ์์ ์์ ํ๊ฒ ํต์ ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ์น์
Client - Server๊ด๊ณ๊ฐ ๊ทธ๋๋ก ์ ์ฉ์ด๋๋ค.openssh-client์openssh-server๋ผ๋ ํ๋ก๊ทธ๋จ์ด ๋ฐ๋ก ์กด์ฌํ๋ค.
SSH์ ์ธ์ฆ ๊ณผ์ ์ ์ดํดํ๊ธฐ ์ํด์ ์ฐ์ ๋น๋์นญํค(Asymmetric Key)์ ๋ํด์ ์์์ผ ํ๋ค.
- SSH ์ค์น ํ ์ฒ์ ๊ตฌ๋๋ ๋ ๋ด๋ถ์ ์ผ๋ก ๋น๋์นญํค(๊ณต๊ฐํค์ ๋น๋ฐํค)๊ฐ ์์ฑ๋๋ค.
- SSH์ธ์ฆ ๊ณผ์
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฒ์ ์ ์์ ์๋ํ๋ฉด ๊ณต๊ฐํค๋ฅผ ๋ฐ์์ง ๋ฌป๋ ๋ฉ์์ง๊ฐ ๋์ค๊ณ ์ฌ์ฉ์๊ฐ
YES๋ฅผ ์ ํํ๋ฉด ๊ณต๊ฐํค๋ฅผ ๋ฐ์์ ํด๋ผ์ด์ธํธ์ ์๋.ssh/known_hostsํ์ผ์ ์ ์ฅํ๊ฒ ๋๋ค. - ํด๋ผ์ด์ธํธ๋ ๋์๊ฐ์ ๋ฐ์์ํค๊ณ ๋์๊ฐ์ ๋ํ ํด์๊ฐ์ ์์ฑํด ์ ์ฅํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์๊ฐ์ ๊ณต๊ฐํค๋ก ์ํธํํ์ฌ ์๋ฒ์ ์ ์กํ๋ค.
- ์๋ฒ์์๋ ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๋น๋ฐํค๋ก ๋ณตํธํํ ํ ๋์๊ฐ์ ์์๋ธ๋ค. ๋ณตํธํ๋ ๋์๊ฐ์ ํตํด ํด์๊ฐ์ ๋ค์ ๋ง๋ ํ ํด๋ผ์ด์ธํธ์ ๋ค์ ์ ์กํ๊ฒ ๋๋ค.
- ํด๋ผ์ด์ธํธ์์๋ ์ ์ฅํ๊ณ ์๋ ํด์๊ฐ๊ณผ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ํด์๊ฐ์ ๋น๊ตํด ์๋ฒ๊ฐ ์ ์์ ์ธ ์๋ฒ์ธ์ง ํ์ธํ๊ฒ ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฒ์ ์ ์์ ์๋ํ๋ฉด ๊ณต๊ฐํค๋ฅผ ๋ฐ์์ง ๋ฌป๋ ๋ฉ์์ง๊ฐ ๋์ค๊ณ ์ฌ์ฉ์๊ฐ
๋ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์.
- ๋ณด์ ํต์ , ํฌํธํฌ์๋ฉ ๋ฑ์ ๊ธฐ๋ฅ ์ ๊ณต
- ์ํธํ๋์ง ์์
telnet,SMTP๋ฑ์ ๋ํ ํจํท ์ค๋ํ ๋ฑ์ ๋ณด์ ๊ณต๊ฒฉ ๋ฐฉ์ง
- ์ํธํ๋์ง ์์
- ํด๋ผ์ด์ธํธ/์๋ฒ ๊ด๊ณ ์กด์ฌ
- ์ฌ์ฉ์ ํด๋ผ์ด์ธํธ ๋ฐ ์์ฉ ์๋ฒ ์ฌ์ด์์ SSH ํด๋ผ์ด์ธํธ ๋ฐ SSH ์๋ฒ๊ฐ ์กด์ฌํจ
- ์ค์น๋ ๋ S/W ์ฌ์ด์์ TCP ๋ณด์ ์ฑ๋์ด ํ์ฑ๋จ
- ์๋ฒ๋ ์๊ฒฉ ์ ๊ทผํ๋ ค๋ ํธ์คํธ, ํด๋ผ์ด์ธํธ๋ ์๊ฒฉ ์ ๊ทผํ๋ ์ฌ์ฉ์.
- ์ฌ์ฉ์ ํด๋ผ์ด์ธํธ ๋ฐ ์์ฉ ์๋ฒ ์ฌ์ด์์ SSH ํด๋ผ์ด์ธํธ ๋ฐ SSH ์๋ฒ๊ฐ ์กด์ฌํจ
- ํ๋กํ ์ฝ ๋ฐ ํฌํธ ๋ฒํธ
- ์ ์ก๊ณ์ธต ํ๋กํ ์ฝ : TCP๋ง ๊ฐ๋ฅ (TCP ์์ ๋ณด์ ์ฑ๋ ํ์ฑ๋จ)
- ํฌํธ ๋ฒํธ : 22 (SSH ์๋ฒ์ ๊ฐ๋ฐฉ๋๋ ํฌํธ)
๋ ๋ง์ ์ ๋ณด๋ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์!
๋ค์ํ SSH ์ค์ ์ ๋ํด์ ์์๋ณธ๋ค.
SSH Server ์ญํ ์ ํ๋ ์ธ์คํด์ค๋ก ๊ฐ์ ์๋์ ๊ฐ์ด ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
$ ssh-keygen -t rsa๊ทธ๋ผ ์๋์ ๊ฐ์ด publicํค์ privateํค๊ฐ ์์ฑ๋๋ ๊ณผ์ ์ ๋ณผ ์ ์๋ค.
์์ฑํ๋ ๊ณผ์ ์์ ๋ฐ๋ก ์ ์ฅ ์์น๋ฅผ ์ค์ ํด์ฃผ์ง ์์๋ค๋ฉด /root/.ssh์ publicํค์ privateํค๊ฐ ์ ์ฅ๋๋ค.
- public ํค ์กฐํ:
sudo cat /root/.ssh/id_rsa.pub - private ํค ์กฐํ:
sudo cat /root/.ssh/id_rsa
sudo๋ฅผ ๋ถ์ผ๋ฉด ์์ ๊ฐ์ด/root/.ssh์ ๋ํดํธ๋ก ํค๊ฐ ์์ฑ๋๋ฉฐ,sudo๋ฅผ ๋ถ์ด์ง ์์ผ๋ฉด ํด๋น ์ ์ ์ home์ ๋ํดํธ๋ก ํค๊ฐ ์์ฑ๋๋ค. (/home/ubuntu)
์ด์ ์ ์ํ๋ ค๋ ์๋น์ค์ฉ ์ธ์คํด์ค์๊ฐ์ ์์์ ๋ง๋ public key๋ฅผ ๋ณต์ฌํด์ฃผ๋ฉด ๋๋ค.
$ vi ~/.ssh/authorized_keys์ด์ ์๋์ ๊ฐ์ด ์ ์ํด์ฃผ๋ฉด ์ ์๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
$ ssh {์๋น์ค์ฉ ์๋ฒ ํธ์คํธ}@{์๋น์ค์ฉ ์๋ฒ IP}
ssh hostname@ip๋ช ๋ น์ด๋ฅผ ์น๋ฉด,~/.ssh/id_rsa์ ํค ํ์ผ์ ์ฌ์ฉํ์ฌ ์ ์์ ์๋ํ๋ค.๊ทธ๋ฆฌ๊ณ ์ ์ํ๊ณ ์ํ๋ ์๋ฒ์
authorized_keys์ ๋์ํ๋ public key๊ฐ ์์ผ๋ฉด ์ ์์ด ๋๋ค.
$ vi /etc/ssh/sshd_config
# Port 22 ๋ถ๋ถ์ ์ฃผ์์ ์ง์ฐ๊ณ ์ํ๋ port๋ก ์ค์
Port 8888
# ssh service ์ฌ์์
$ sudo service ssh restart
$ ssh -i {keyfile} -p 8888 {hostname}@{ip}๋ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ํ์ธํด์ฃผ์ธ์.
์ผ๋ฐ์ ์ผ๋ก SSH๋ฅผ ํตํด ์๋ฒ์ ์ ์ํ๋ฉด ํฐ๋ฏธ๋์์ IP ์ฃผ์๋ง์ ๋ณด์ฌ์ค๋ค.
ํ์ง๋ง IP๋ง์ผ๋ก Bastion์ธ์ง, DEV์๋ฒ์ธ์ง, PROD์๋ฒ์ธ์ง๋ฅผ ํ์ธํ ์ ์๋ค.
์ด๋ Shell์ Prompt๋ฅผ ๋ณ๊ฒฝํด์ฃผ๋ฉด ์ด๋ฆ์ ๋ถ์ฌํ์ฌ ์ด๋ค ์๋ฒ์ธ์ง ์ฝ๊ฒ ๊ตฌ๋ถํ ์ ์๋ค.
์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
$ sudo vi ~/.bashrc
# ๊ฐ์ฅ ๋ฐ์
USER=BASTION
PS1='[\e[1;31m$USER\e[0m][\e[1;32m\t\e[0m][\e[1;33m\u\e[0m@\e[1;36m\h\e[0m \w] \n\$ \[\033[00m\]'
# ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
# ๊ทธ๋ฆฌ๊ณ resource ๋ช
๋ น์ ํตํด ์ ์ฉ์์ผ์ค๋ค.
source ~/.bashrc๋ง์ฝ ํด๋น ์๋ฒ์ ๋ํ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ ์ฉํ๊ณ ์ถ๋ค๋ฉด
/etc/bashrc๋ฅผ ์์ ํด์ฃผ๋ฉด ๋๋ค.๋ํ, bashrc์ ๋ํ ๊ฐ๋ ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์.
๋ณดํต SSH๋ฅผ ํตํด ๋ค๋ฅธ ์๋ฒ์ ์ ์ํ๊ธฐ ์ํด์ ์๋์ ๊ฐ์ด {Hostname}@{ip address}๋ฅผ ํตํด ๋ชฉ์ ์ง๋ฅผ ์ ํ๋ค.
ํ์ง๋ง ๋งค๋ฒ ์ด๋ ๊ฒ ํ๊ธฐ ๋ฒ๊ฑฐ๋ฝ๋ค๋ฉด /etc/hosts์ ๋ฏธ๋ฆฌ ๋ณ์นญ์ ์ค์ ํด์ค ์ ์๋ค.
$ vi /etc/hosts
# {IP} {๋ณ์นญ} ์ถ๊ฐ
192.168.1.144 dev์ด์ ssh {hostname}@dev์ผ๋ก ์ ์ํ ์ ์๋ค. (ex. ssh ubuntu@dev)
์กฐ๊ธ ๋ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์๋ ์๋ค.
$ vi ~/.ssh/config
Host {hostname}
HostName {server ip}
User ubuntu
# Port {port}
# IdentityFile ~/.ssh/{pem key}~/.ssh/config์ ์์ ๊ฐ์ด ์ค์ ํด์ฃผ๋ฉด ํจ์ฌ ๋ ๊ฐํธํ๊ฒ ์ ์๊ฐ๋ฅํ๋ค.
์์๋ฅผ ํตํด ์ดํด๋ณด์.
์ด์ ssh dev.was๋ฅผ ํตํด ์ฝ๊ฒ ์ ์ํ ์ ์๋ค.
๋ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ํ์ธํด์ฃผ์ธ์.





