Bash+SSH ์๊ฐ
5768 ๋จ์ด bash
scp
~/.ssh
๋๋ ํฐ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ธ ํค/๊ณต๊ฐ ํค ์์ ํ์ธํฉ๋๋ค.ssh-keygen
ํค๋ฅผ ์ด๋ ๋๋ ํฐ๋ฆฌ์ ์ ์ฅํ ์ง ๋ฌผ์ด๋ด
๋๋ค.์์
ํ๋ ค๋ฉด ~/.ssh
ํด๋์ ๋ฃ์ด์ผ ํ์ง๋ง ์ฌ์ฉ์ ์ ์ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค.๋ช
๋ น์ด ์ํธ๋ฅผ ์
๋ ฅํ๋ผ๊ณ ์๊ตฌํ ๋, Enter ํค๋ฅผ ๋ ๋ฒ ๋๋ฅด๊ธฐ๋ง ํ๋ฉด ๋ด์ฉ์ ์
๋ ฅํ์ง ์์ต๋๋ค. ์ ํฌ๋ ๊ฐ์ธ์ฉ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ํธ ๋ณดํธ ํค๊ฐ ํ์ํ์ง ์์ต๋๋ค.๋์ ์ ์ด์ ๋ /home/zach/.ssh/id_digitalocean_rsa
๋ก ์ ์ฅ๋๋ค.์ด ํค์ ๊ณต์ฉ ๋ฒ์ ์ ์ธ์ํ๊ณ ๋ณต์ฌํด์ผ ํฉ๋๋ค.์ด ์์ ์์๋ ๋ช ๋ น์ ์ ๋ ฅํฉ๋๋ค.
cat ~/.ssh/id_digitalocean_rsa.pub
๋ง์ง๋ง์ ์ถ๊ฐํ์ต๋๋ค.pub
.ํค ์์ ๋ง๋ค ๋ ํญ์ .pub
๋ฒ์ ์ด ์์ต๋๋ค.์ด ํ์ผ์ ๋ด์ฉ์ ๋ณต์ฌํ ํ ์์ฃผ ๊ณต๊ธ์
์ฒด์ SSH ํค ์์์ ๋ถ์ฌ๋ฃ์ต๋๋ค.๋์งํธ ๋ฐ๋ค์์ ๋๋ ๊ทธ๊ฒ์ ์ฌ๊ธฐ์ ๋ถ์ผ ๊ฒ์ด๋ค.
์๋ฃ๋๋ฉด ๊ฐ์ ๋จธ์ ์ ์์ฑํ ์ ์์ต๋๋ค.์ด์ ์ ๊ฐ์ ์์คํ ์ IP ์ฃผ์๋ฅผ ์ฐพ์ ํฐ๋ฏธ๋์ ๋ค์ ๋ช ๋ น์ ์ ๋ ฅํฉ๋๋ค.
ssh -p 22 root@157.230.167.2
์ด๋ ๊ฒ ํ๋ฉด VPS์ ์ฑ๊ณต์ ์ผ๋ก ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค.ssh ํ๋ก์์ ํค ์๊ตฌ ์ถ๊ฐ
์ด๊ฒ์ Linux์์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง, Mac์์๋ ๊ธฐ๋ณธ ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.๊ธฐ๋ณธ์ ์ผ๋ก
id_rsa
์ด ์๋ ํค๋ ssh ํ๋ก์ ์ ํธ๋ฆฌํฐ์ ์ถ๊ฐ๋์ง ์๊ณ Mac ํค ์ฒด์ธ์ ์ถ๊ฐ๋์ง ์์ต๋๋ค.์ด๊ฒ์ ๊ฐ์ ์์คํ
์ ๋ก๊ทธ์ธํ ๋๋ง๋ค ssh ํค๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.์๋ฅผ ๋ค์ด ๋๋ digital-ocean
๋ผ๋ ํค๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ๋์ ๋์งํธ ํด์ ๋ฌผ๋ฐฉ์ธ์ ๋ก๊ทธ์ธํ๋ ๋ฐ ์ฐ์ธ๋ค.# Loads necessary environment variables
eval `ssh-agent -s`
# Adds ssh key
ssh-add -K ~/.ssh/digital-ocean
# Login
ssh -p 22 root@<some-ip-address>
Mac์ ๋ก๊ทธ์ธํ ๋๋ง๋ค ์ด๋ ๊ฒ ํ์ง ์๋๋ก ๋ค์ ํญ๋ชฉ์ด ์๋๋ก ์์ ํด์ผ ํฉ๋๋ค~/.ssh/config
.Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/digital-ocean
์์์'๋ชจ๋ '์ ํฌํจํ๋ ํธ์คํธ (github.com ๊ฐ์ ๋๋ฉ์ธ์ผ๋ก ๋ฐ๊ฟ ์ ์์) ๋ฅผ ์ง์ ํ๊ณ , ์์ด์ ํธ์๊ฒ ํค ์ฒด์ธ์ ์ฌ์ฉํ๊ณ , ํค๋ฅผ ์ถ๊ฐํ๊ณ , ๋ก๊ทธ์ธ ์ด๋ฆ์ ์ด๊ฑฐ๋ ๋ ๊ฐ์ ์ ๋ถ ํ์ผ์ ์ฌ์ฉํ๋ผ๊ณ ์๋ ค ์ค๋๋ค.๋ก์ปฌ ์ปดํจํฐ์์ ์๊ฒฉ ์ปดํจํฐ๋ก
๋ค์์ ์๊ฒฉ ์ปดํจํฐ์ ๋ก์ปฌ ์ปดํจํฐ ์ฌ์ด์์ ํ์ผ์ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ ์ฃผ๊ณ ์ถ์ต๋๋ค.์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋
scp
์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.๋ง์ฝ ๋ด๊ฐ
sample-file.txt
๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ๋๋ ๊ทธ๊ฒ์ ์๊ฒฉ ๊ธฐ๊ณ์ ์
๋ก๋ํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.scp -r sample-file.txt root@157.230.167.2:~/
์ด๊ฒ์ sample-file.txt
์ฌ์ฉ์๋ฅผ ์ฌ์ฉํ์ฌ root
ํ์ผ์ ์
๋ก๋ํ๊ณ ์ด ํ์ผ์ ๋ด ์๊ฒฉ ๊ธฐ๊ธฐ์ ํ ๋๋ ํฐ๋ฆฌ ~/
์ ์ ์ฅํฉ๋๋ค.IP ์ฃผ์ ๋ค์ ์ฌ์นญ :
์ ์ถ๊ฐํ๋ฉด ์๊ฒฉ ๊ธฐ๊ธฐ์ ์ด๋ค ๊ฒฝ๋ก๋ ์ง์ ํ ์ ์์ต๋๋ค.์๊ฒฉ ์ปดํจํฐ์์ ๋ก์ปฌ ์ปดํจํฐ๋ก
์๊ฒฉ ์ปดํจํฐ์์ ๋ก์ปฌ ์ปดํจํฐ๋ก ๋์ผํ ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํ์ญ์์ค.
scp -r root@157.230.167.2:~/sample-file.txt ~/Downloads
์ด๊ฒ์ ๊ฐ์ ๊ฒฌ๋ณธ ํ์ผ์ ๋ก์ปฌ ์ปดํจํฐ์ ~/Downloads
ํด๋์ ๋ฃ์ ๊ฒ์ด๋ค.wget์ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด ํจํค์ง๋ฅผ ์๊ฒฉ ๊ธฐ๊ธฐ๋ก ๋ค์ด๋ก๋
๋๋๋ก ์ธํฐ๋ท์์ VPS๋ก ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค.GUI๊ฐ ์์ผ๋ฏ๋ก ๋ช ๋ นํ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.์๋ฅผ ๋ค์ด ์ด๋ค ์ด์ ๋ก๋ ๊ตฌ๊ธ ์ฌ์ง์ ๋ด ๋ถํ์ฅ์๊ฒ ๋ค์ด๋ก๋ํ๊ณ ์ถ๋ค.
์ด๊ฒ์ ๋ด๊ฐ ์ฐ์ ์๋ฆ๋ค์ด ๊ณจํ ์ฌ์ง์ด๋ค - https://raw.githubusercontent.com/zachgoll/example-web-assets/main/golf-image.jpg
๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ VPS๋ก ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
wget -O my-custom-picture.jpg https://raw.githubusercontent.com/zachgoll/example-web-assets/main/golf-image.jpg
์ด๊ฒ์ ์ฌ์ง์ ๋ค์ด๋ก๋ํ์ฌ my-custom-picture.jpg
๋ช
๋ น์ ์คํํ๋ ๋ชจ๋ ๋๋ ํฐ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.์๊ฒฉ ์์คํ ์์ VSCode ์ฌ์ฉ
๋ฌผ๋ก VPS์ ๋ชจ๋ ๊ฐ๋ฐ ์์๋ฅผ ์ถฉ์กฑ์ํค๊ธฐ ์ํดVim ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, VSCode์ ๊ฐ์ ๊ธฐ๋ฅ์ด ํ๋ถํ ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด ์ข์ต๋๋ค.
rmate
๋ช
๋ น์ ๋์์ผ๋ก VPS์ ํ์ผ์ VSCode๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.์ด๋ฅผ ์ํด VSCode๋ฅผ ์ด๊ณ Remote VSCode๋ผ๋ ํ์ฅ์๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.๋ค์ด๋ก๋ํ ํ ctrl-shift+P๋ฅผ ์
๋ ฅํ์ฌ ์ค์ ์ ์ด๊ณ "> ๊ธฐ๋ณธ ์ค์ : ์ฌ์ฉ์ ์ค์ ์ด๊ธฐ"๋ฅผ ์
๋ ฅํ์ญ์์ค.์๋๋ก ์คํฌ๋กคํ์ฌ Extensions(ํ์ฅ) ๋๋กญ๋ค์ด ๋ชฉ๋ก์ ์ฐพ์ ๋ค์ Remote VSCode(์๊ฒฉ VSCode)๋ฅผ ์ ํํฉ๋๋ค.์ค์ ์์ ๋ค์์ด ํ์ํฉ๋๋ค.Remote Host: 127.0.0.1
Remote Port: 52698
Remote Onstartup: True (will be a checkbox)
์ด์ ctrl-shift P๋ฅผ ๋ค์ ์
๋ ฅํ๊ณ "> ์๊ฒฉ: ์๋ฒ ์์"์ ์
๋ ฅํ์ญ์์ค.์๊ฒฉ ์๋ฒ๊ฐ ์์๋ฉ๋๋ค.์ด์ ํฐ๋ฏธ๋์์ ๋ค์ ๋ช
๋ น์ ์
๋ ฅํ์ฌ VPS์ ์ฐ๊ฒฐํฉ๋๋ค.ssh -R 52698:127.0.0.1:52698 root@157.230.167.2
๋ถ๋ช
ํ IP ์ฃผ์๋ฅผ ์์ ์ IP ์ฃผ์๋ก ๋์ฒดํ ๊ฒ์
๋๋ค.๊ทธ๋ฐ ๋ค์ VPS์ ์ ํธ๋ฆฌํฐrmate
๋ฅผ ์ค์นํฉ๋๋ค.sudo wget -O /usr/local/bin/rmate https://raw.github.com/aurora/rmate/master/rmate
sudo chmod a+x /usr/local/bin/rmate
์ด์ VPS์์ ๋ค์ ๋ช
๋ น์ ์คํํ์ฌ VSCode๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ํธ์งํ ์ ์์ต๋๋ค!rmate sample-file.txt
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(Bash+SSH ์๊ฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/zachgoll/intro-to-bash-ssh-3do0ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค