๐ก ๋ณธ ๋ฌธ์๋ 'ssh config ์ค์ ๋ฐฉ๋ฒ: ~/.ssh/config'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
ํ๋์ ์ปดํจํฐ์์ ๋ณต์์ SSH ํค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ SSH ์ ์์ ์ฌ์ฉํ๋ ssh ๋ช ๋ น์ด ๋ณต์กํด์ง๋ ๋จ์ ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ณต์ก์ฑ์ ~/.ssh/config ํ์ผ์ ์๊ฒฉ ์๋ฒ์ ์ ์ํ๊ธฐ ์ํ IP ๋ฐ ์ ์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
ssh ์ฌ์ฉํ๊ธฐ
๊ณต๊ฐํค ๊ฐ์ธํค ๋ฐ๊ธ for ssh
ssh๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ค์์ ๋ช ๋ น์ผ๋ก ๋น๋ฐ๋ฒํธ ๋์ ์ฌ์ฉํ ๊ณต๊ฐํค ๊ฐ์ธํค๋ฅผ ๋ฐ๊ธ๋ฐ์์ผ ํฉ๋๋ค.
$ ssh-keygen -t rsa -b 4096โ
ssh ์๋ฒ ์ ์ํ๊ธฐ
ssh ๋ช ๋ น์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$ ssh <์ฌ์ฉ์ID>@<์๋ฒ๋ช
>
๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ ๋ด๋ฆด ๋ ssh ๋ช ๋ น์ “~/.ssh/id_rsa” ์ ์ ์๋ ๊ฐ์ธํค๋ฅผ ์ฌ์ฉํ์ฌ, 52.79.103.139 ์๋ฒ์ ubuntu ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ์๋ํฉ๋๋ค.
$ ssh ubuntu@52.79.103.139
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64)
Last login: Mon Feb 1 01:44:13 2016 from 211.210.76.6
ubuntu@ip-172-31-11-175:~$ pwd
/home/ubuntu
ubuntu@ip-172-31-11-175:~$
๊ธฐ๋ณธ SSH ํค(~/.ssh/id_rsa)๊ฐ ์๋ ๋ค๋ฅธ SSH ํค ํ์ผ์ ์ฌ์ฉํด์ผ ํ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด -i ์ต์ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
$ ssh ubuntu@52.79.103.139 -i ~/.ssh/aws-seoul.pem
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64)
Last login: Mon Feb 1 02:10:40 2016 from 211.210.76.6
ubuntu@ip-172-31-11-175:~$
์ ๋ช ๋ น์ SSH ํค ํ์ผ์ ์ง์ ์ง์ ํด์ผ ํ๋ฏ๋ก ์ฌ์ฉํ๊ธฐ ๋ถ๋ด์ค๋ฌ์ด ๋ฉด์ด ์์ต๋๋ค. ssh ๋ช ๋ น์ ๋จ์ํ๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ํ๋๋ ๋ค์๊ณผ ๊ฐ์ alias๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
$ alias sjchoi="ssh ubuntu@52.79.103.139 -i ~/.ssh/sjchoiSSHkey.pem"
$ sjchoi
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-74-generic x86_64)
Last login: Mon Feb 1 02:23:47 2016 from 211.210.76.6
ubuntu@ip-172-31-11-175:~$
alias๋ฅผ ์ฌ์ฉํ๋ฉด ๋ช ๋ น์ ์ฝ๊ฒ ์ ๋ ฅํ ์ ๋ ์์ง๋ง ๋ณ๋๋ก alias๋ฅผ ๊ด๋ฆฌํ๋ค๋ ๋ถ๋ด์ด ์ฆ๊ฐํฉ๋๋ค. ๋ํ ssh ๋ช ๋ น์ ์ธ์ฆ์, ์๋ฒ ํฌํธ, ํฌํธ ํฌ์๋ฉ ๋ฑ ๋ค์ํ ์ค์ ์ต์ ์ด ์์ผ๋ฏ๋ก, ๋ค์ํ ์ต์ ๋ณ๊ฒฝ์ ํจ๊ณผ์ ์ผ๋ก ๋์ํ๊ธฐ์ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
~/.ssh/config ํ์ผ ์ฌ์ฉ
~/.ssh/config ํ์ผ ๊ตฌ์ฑ
์ฌ๋ฌ ssh ํค ํ์ผ๋ค์ ์ฌ์ฉํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ ~/.ssh/config ํ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ค์์ ์ผ๋ฐ์ ์ธ ํํ์ ~/.ssh/config ํ์ผ ๊ตฌ์ฑ์
๋๋ค.
## for dev server
Host devserver
HostName 52.79.103.139
Port 3389
User sjchoi
PreferredAuthentications publickey
IdentityFile ~/.ssh/sjchoiSSHkey.pem
IdentitiesOnly yes
## for git
Host github.com
User git
IdentityFile ~/.ssh/id_rsa_XXXXXXXXXXXX
Host bitbucket.org
User git
IdentityFile ~/.ssh/id_rsa_@@@@@@@@@@@@
- Host: ssh ๋ช ๋ น์ ์ฌ์ฉํ๋ ์ด๋ฆ
- User: Host์ ์ง์ ๋ ์ด๋ฆ์ด ๋งคํ๋๋ ์ค์ ์ฌ์ฉ์ ๋ช
- Hostname: Host์ ์ง์ ๋ ์ด๋ฆ์ด ๋งคํ๋๋ ์ค์ ํธ์คํธ ๋ช
- Port: ์๊ฒฉ ssh ๋ฐ๋ชฌ์ด ์ฌ์ฉํ๋ ํฌํธ, default value:22
- IdentityFile: Host ๋ณ๋ก ์ฌ์ฉํ ํค์ ์์น๋ฅผ ์ง์
~/.ssh/config ํ์ผ ๊ถํ
SSH ์ค์ ํ์ผ์ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฌ๊ฐํ ๋ณด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ก์ง ํ์ผ ์์ ๊ถ์๋ง์ด ์ค์ ํ์ผ์ ์ฝ์ ์ ์๋๋ก ๊ถํ์ ์ ํํด์ผ ํฉ๋๋ค.
chmod 440 ~/.ssh/config
๊ฒฐ๋ก
- ํ๋์ ์ปดํจํฐ์์ ์ฌ๋ฌ ๊ฐ์ SSH ํค ํ์ผ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋งค์ฐ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ ๋๋ค. ์ต๊ทผ์ ์ฌ๋ฌ ํด๋ผ์ฐ๋ ์๋น์ค, github, bitbucket, gitlab ๋ฑ SSH ํค ์ธ์ฆ์ ์ฌ์ฉํ๋ ์๋น์ค๊ฐ ๋์ด๋๋ฉด์ ssh ํค ํ์ผ ๊ด๋ฆฌ๊ฐ ํ์ํ ์ํฉ์ ๋๋ค.
- ssh config ํ์ผ์ ์ด์ฉํ๋ฉด ๋๋ฉ์ธ, ip ํน์ ์๋ฒ์ alias๋ช ๋ณ๋ก ์ ์ ๊ณ์ , SSH ํค ํ์ผ, ssh ๋ช ๋ น ์์ฑ ์ ์ค์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ssh ๋ช ๋ น์ ๊ฐ๊ฒฐํ๊ฒ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
- ssh config๋ ~/.ssh/configํ์ผ์ ๋๋ค. ์ด ํ์ผ์ ์์ ๊ถ์๋ง์ด ์ ๊ทผํ ์ ์๋๋ก ํผ๋ฏธ์ ์ 440์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
- [blog]ssh config: http://taewan.kim/post/ssh_config/
- ssh ์ฌ์ฉ์ ๋จ์ํํ๊ธฐ ์ํ ssh config ์ค์ : http://taewan.kim/blog/2016/01/28/ssh_config/
- ssh key ํจ์จ์ ์ธ ๊ด๋ฆฌ ๋ฐฉ๋ฒ: http://www.popit.kr/ssh-key-ํจ์จ์ ์ธ-๊ด๋ฆฌ-๋ฐฉ๋ฒ/