scp ๋ช ๋ น์ด๋ SSH ๊ธฐ๋ฐ์ผ๋ก ๋ก์ปฌ·์๊ฒฉ ์๋ฒ ๊ฐ ํ์ผ์ ์์ ํ๊ฒ ์ ์กํ๋ ๋ฆฌ๋ ์ค ํต์ฌ ๋๊ตฌ์ ๋๋ค. ํ์ผ·๋๋ ํฐ๋ฆฌ ๋ณต์ฌ, ํฌํธ ๋ณ๊ฒฝ, ํค ์ธ์ฆ, ์๋ ๊ฐ์ , ์ค๋ฌด ํจํด๊ณผ FAQ๊น์ง ์ ๋ฆฌํด๋ณผ๊ป์^^
ํ์ผ ํ๋ ์ฌ๋ฆฌ๊ณ ๋ฐ๋ ์ผ, ๊ฐ๋ฐ์๋ผ๋ฉด ํ๋ฃจ์๋ ์์ญ ๋ฒ์ฉ ๋ฐ๋ณตํ์ฃ .
ํ์จ์ด ๋น๋ → ๋ณด๋ ์
๋ก๋ → ๋ก๊ทธ ๋ค์ด๋ก๋ → ์๋ฒ ๊ฐ ํ
์คํธ ํ์ผ ๊ตํ๊น์ง…
์ด ๋ชจ๋ ๊ณผ์ ์ ์ค์ฌ์ scp(secure copy)๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ๋จ์ ๋ช
๋ น ๋ชจ์์ด ์๋๋ผ, ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ ์ค์ ์ฌ์ฉ๋ฒ·๋ฌธ์ ํด๊ฒฐ·๋ณด์ ํ์ ๋ด์์ต๋๋ค.
์ด๋ณด์๋ ์ดํดํ ์ ์์ง๋ง, ์ค๋ฌด์๋ "์, ๋ง์ ์ด๊ฒ ํ์ํ์ง" ํ ์ ์๋๋ก ๊ตฌ์ฑํ์ต๋๋ค.
1. scp๊ฐ ์ฌ์ ํ ์ค๋ฌด์์ ์ค์ํ ์ด์
๋ฆฌ๋
์ค์์ ํ์ผ์ ์ฎ๊ธฐ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ง๋ง,
"SSH ๋ณด์ + ํ์ผ ๋ณต์ฌ"๋ฅผ ๋์์ ํด๊ฒฐํด ์ฃผ๋ ๋ช
๋ น์ด๋ scp๊ฐ ์ ์ผํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ํฉ์์๋ ๊ฑฐ์ ๋ฌด์กฐ๊ฑด scp๊ฐ ๋ฑ์ฅํฉ๋๋ค.
- ์๋ก ๋น๋ํ ํ์จ์ด๋ฅผ ์๋ฒ ๋๋ ์ฅ๋น๋ก ์ ๋ก๋ํ ๋
- ์ฅ์ ๋ถ์์ ์ํด ์๋ฒ ๋ก๊ทธ๋ฅผ ๋ด๋ ค๋ฐ์ ๋
- Git์ ์ฐ๊ธฐ ์ด๋ ค์ด ํ๊ฒฝ์์ ๊ธด๊ธ ๋ฐฐํฌ๊ฐ ํ์ํ ๋
- ํ ์คํธ ์๋ฒ ๊ฐ ํ์ผ์ ๋น ๋ฅด๊ฒ ๊ตํํ ๋
scp๋ SSH ํ๋กํ ์ฝ์ ๊ทธ๋๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ฑ์ด ๋๊ณ , ๋ณ๋ค๋ฅธ ์ถ๊ฐ ์ค์ ์์ด ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
2. scp ๊ฐ๋ ์ดํด
SSH ํ๋กํ ์ฝ ์์์ ํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ํธํํด ์ ์กํฉ๋๋ค.
์ค๊ฐ์์ ํจํท์ ํ์ทจํด๋ ๋ด์ฉ์ ์ ์ ์์ต๋๋ค.

3. scp ๊ธฐ๋ณธ ๋ฌธ
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ์ ์๋์ ๊ฐ์ต๋๋ค:
scp [์ต์
] <์๋ณธ ๊ฒฝ๋ก> <๋์ ๊ฒฝ๋ก>

์ฌ๊ธฐ์ ๊ฒฝ๋ก๋ ๋ก์ปฌ ๋๋ ์๊ฒฉ ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค.
์๊ฒฉ ๊ฒฝ๋ก ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
user@host:/path/to/directory/
์)
user@192.168.0.10:/home/user/
4. ๋ก์ปฌ → ์๊ฒฉ ์ ์ก
scp file.txt user@192.168.0.10:/home/user/
์ค๋ช :
- file.txt : ๋ก์ปฌ ํ์ผ
- user@192.168.0.10 : ์ ์ ๊ณ์ + ์๋ฒ ์ฃผ์
- /home/user/ : ์๋ฒ์ ์ ์ฅ๋ ๊ฒฝ๋ก
๊ฒฐ๊ณผ:
→ file.txt๊ฐ ์๊ฒฉ ์๋ฒ์ ํด๋น ๋๋ ํฐ๋ฆฌ์ ์
๋ก๋๋ฉ๋๋ค.
5. ์๊ฒฉ → ๋ก์ปฌ ํ์ผ ๋ค์ด๋ก๋
scp user@192.168.0.10:/home/user/log.txt .
.์ "ํ์ฌ ๋๋ ํฐ๋ฆฌ"๋ฅผ ์๋ฏธํฉ๋๋ค.

6. ๋๋ ํฐ๋ฆฌ ์ ์ฒด ์ ์ก (-r ์ต์ ํ์)
scp๋ ํ์ผ๋ง ์ ์กํ๋ฏ๋ก, ํด๋๋ฅผ ์ ์กํ ๋๋ ๋ฐ๋์ -r
๋ก์ปฌ → ์๊ฒฉ
scp -r project/ user@server:/home/user/
์๊ฒฉ → ๋ก์ปฌ
scp -r user@server:/var/logs/ ./logs_backup/
์๋ ๊ทธ๋ฆผ์ scp๊ฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณต์ฌํ ๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ค ํ๋ฆ์ผ๋ก ๋์ํ๋์ง๋ฅผ ๋ํ๋ธ ๊ฐ๋
๋์
๋๋ค.
-r ์ต์
์ ์ฌ์ฉํ๋ฉด scp๋ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํ์ํ๋ฉด์ ํ์ผ๊ณผ ํ์ ํด๋๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํฉ๋๋ค.
์ด ๊ณผ์ ์ SSH ํฐ๋์ ํตํด ์ํธํ๋์ด ์ ์ก๋๊ธฐ ๋๋ฌธ์ ์ค๊ฐ์์ ํจํท์ด ํ์ทจ๋๋๋ผ๋ ํ์ผ ๋ด์ฉ์ด ๋
ธ์ถ๋์ง ์์ต๋๋ค.
์ด๋ฏธ์ง์์ ๋ณด๋ฏ์ด:
- Source System → Destination System ์ผ๋ก ํ์ผ·๋๋ ํฐ๋ฆฌ๊ฐ ์ด๋
- ์ฌ๊ท์ ์ผ๋ก ๋ณต์ฌ(Recursively Copies)
- ํ์ผ ๊ถํ(Permissions)์ ์ ์งํ ์ฑ ์ ์ก
- SSH ๊ธฐ๋ฐ ์ํธํ ์ฑ๋์ ํตํด ๋น ๋ฅด๊ณ ์์ ํ๊ฒ(Fast & Secure) ์ด๋
์ฆ, ๋จ์ํ ํ์ผ ๋ณต์ฌ๋ฅผ ๋์ด ํด๋ ์ ์ฒด๋ฅผ ์์ ํ๊ฒ ๋ฐฑ์ ํ๊ฑฐ๋ ๋ฐฐํฌํ ๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ์ ํ์ ์ธ scp ์ฌ์ฉ ๋ฐฉ์์ ๋๋ค.

7. SSH ํฌํธ๊ฐ 22๊ฐ ์๋ ๋ (-P ์ต์ )
SSH ํฌํธ๊ฐ ๋ณ๊ฒฝ๋ ์๋ฒ:
scp -P 2222 file.txt user@192.168.0.10:/home/user/
8. SSH ํค๋ก ์ ์ํ๊ธฐ (-i)
๋น๋ฐ๋ฒํธ ๋์ ํค ์ธ์ฆ์ ์ฌ์ฉํ๋ ์๋ฒ๋ผ๋ฉด -i ์ต์ ์ ์ฌ์ฉํฉ๋๋ค.
scp -i mykey.pem file.txt user@192.168.0.10:/home/user/
AWS EC2, ๊ธฐ์ ๋ณด์ ์๋ฒ ๋ฑ์์ ํ์์ ๋๋ค.
9. ์๋·๋๋ฒ๊น ์ต์
์ ์ก ์์ธ ๋ก๊ทธ ๋ณด๊ธฐ (-v)
scp -v file.txt user@server:/path/
์์ถ ์ ์กํ๊ธฐ (-C)
scp -C bigfile.tar.gz user@server:/backup/
์ค๋ฌด ๊ธฐ์ค ํ:
- CPU๊ฐ ์ฝํ ์๋ฒ ๋๋ ์ฅ๋น์์๋ ์์ถ์ด ์คํ๋ ค ๋๋ ค์ง ์ ์์ต๋๋ค.
- ๋์ญํญ์ด ์ข๊ฑฐ๋ ์ง์ฐ์ด ํฐ ํ๊ฒฝ์์๋ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค.
10. ์ค๋ฌด์์ ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉํ๋ ํจํด
1) tar๋ก ๋ฌถ์ ํ๋ก์ ํธ ๋ฐฑ์ ์ ์๋ฒ๋ก ์ ๋ก๋
tar -czf project.tar.gz project/
scp project.tar.gz user@192.168.0.10:/home/backup/
2) ์๊ฒฉ ์๋ฒ ๋ก๊ทธ ํ์ผ ์ผ๊ด ๋ค์ด๋ก๋
scp user@server:/var/log/*.log .
3) ๋น๋ ์ฐ์ถ๋ฌผ(ํ์จ์ด) ์ ์ก
scp build/output.bin root@192.168.1.1:/tmp/
OpenWrt / ์๋ฒ ๋๋ ์ฅ๋น์์ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ํจํด์ ๋๋ค.
4) ์ฌ๋ฌ ํ์ผ์ ํ ๋ฒ์ ์ ์ก
scp file1 file2 file3 user@server:/home/user/
11. scp ์ฃผ์ ๊ตฌ์กฐ ์ ๋ฆฌ
| ๋์ | ํ์ |
| ๋ก์ปฌ → ์๊ฒฉ | scp local user@host:/path/ |
| ์๊ฒฉ → ๋ก์ปฌ | scp user@host:/path local |
| ํฌํธ ์ง์ | scp -P 2222 ... |
| ํคํ์ผ ์ฌ์ฉ | scp -i key.pem ... |
| ํด๋ ๋ณต์ฌ | scp -r folder/ user@host:/path/ |
12.์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ํด๊ฒฐ
1) Authentication Failed
์์ธ:
- ํค ๊ถํ 600์ด ์๋
- ์๋ฒ๊ฐ PasswordOnly ๋ชจ๋
- ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ ๊ถํ์ด 700์ด ์๋
2) Permission denied
- ์๊ฒฉ ๋๋ ํฐ๋ฆฌ์ ์ฐ๊ธฐ ๊ถํ ์์
- /etc, /usr/local ๊ฐ์ ๋ณดํธ๋ ๊ฒฝ๋ก
- ์๋ฒ ๋๋ ์ฅ๋น์ ์ฝ๊ธฐ ์ ์ฉ ํํฐ์ (overlay ๋ฌธ์ )
3) -r ์ต์ ์์ด ํด๋ ๋ณต์ฌ
์ค๋ฅ ๋ฉ์์ง:
not a regular file
ํด๊ฒฐ: scp -r ์ฌ์ฉ
4) ์ ์ก์ด ๋๋ฆฐ ๊ฒฝ์ฐ
- -C ์์ถ ์ต์ ์ฌ์ฉ
- ๋๋ scp ๋์ rsync ์ฌ์ฉ ์ถ์ฒ
13. scp vs rsync

์ ๊ทธ๋ฆผ์ ํ๋ก ๋ง๋ค๋ฉด ์๋์ ๊ฐ์์^^
| ํญ๋ชฉ | scp | rsync |
| ๋ฐฉ์ | ์ ์ฒด ๋ณต์ฌ | ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋ณต์ฌ |
| ์๋ | ๋น ๋ฆ | ๋งค์ฐ ํจ์จ์ |
| ์ ์ก ์ฌ๊ฐ | ๋ถ๊ฐ๋ฅ | ๊ฐ๋ฅ |
| ์์ถ | ์ง์(-C) | -z ์ต์ |
| ์ถ์ฒ ์ฌ์ฉ | ๋จ์ ํ์ผ ์ ์ก | ๋ฐ๋ณต·๋๋ ๋ฐฑ์ |
rsync๋ ๊ณ ๊ธ ๋ฐฑ์
·๋๊ธฐํ ๋๊ตฌ์ด๊ณ ,
scp๋ ๋จ์ํ๊ณ ์ฆ๊ฐ์ ์ธ ํ์ผ ์ ์ก์ ์ ํฉํฉ๋๋ค.
14. ๋ณด์์ ๊ฐํํ๋ ๊ณ ๊ธ scp ์ฌ์ฉ ํ
1) ๊ถํ์ด ๋ฎ์ ์ฌ์ฉ์๋ก ์ ์กํ๊ธฐ
scp file.txt deploy@server:/home/deploy/
๋ณด์์ ์ํด root ์ฌ์ฉ์ ์ต์ํํฉ๋๋ค.
2) ๋ฐฉํ๋ฒฝ(iptables, ufw)์์ ํฌํธ ํ์ฉ
์๋ฒ ํฌํธ๊ฐ ๋งํ๋ฉด scp๊ฐ ๋์ํ์ง ์์ต๋๋ค.
3) ์๋ฒ ์ ์ ์์ด ํ์ผ๋ง ์ ์ก
scp๋ SSH ๋ก๊ทธ์ธ ์์ด ํ์ผ๋ง ์ ์ก๋๋ฏ๋ก
CI/CD ํ์ดํ๋ผ์ธ์์๋ ์์ ํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
15. ์ค๋ฌด ์๋ํ ์คํฌ๋ฆฝํธ ์์
๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ ์๋์ผ๋ก ๋ฐฑ์ ์๋ฒ๋ก ์ ์ก:
#!/bin/bash
FILE=output_$(date +%Y%m%d).tar.gz
tar -czf $FILE output/
scp -i deploy_key.pem $FILE deploy@192.168.0.10:/backup/
16. FAQ
Q1. scp์ sftp ์ฐจ์ด๋?
A. sftp๋ ์ธํฐ๋ํฐ๋ธ ํ์ผ ๊ด๋ฆฌ ํด์ด๋ฉฐ, scp๋ ๋จ์ ์ ์ก์ฉ.
Q2. scp๋ก ํ์ผ ๊ถํ๋ ์ ์ง๋๋์?
A. ์ ์ก ํ ์๊ฒฉ ํ์ผ ์์คํ ๊ถํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์๋ณธ ๊ทธ๋๋ก ๋ณด์ฅ๋์ง๋ ์์ต๋๋ค.
Q3. scp๋ ์ ์ก ์ฌ๊ฐ๊ฐ ๊ฐ๋ฅํ๊ฐ์?
A. ์๋์. ๋์ผ ํ์ผ์ ๋ค์ ์ ์กํด์ผ ํฉ๋๋ค.
์ฌ๊ฐ ๊ธฐ๋ฅ์ rsync๊ฐ ์ง์ํฉ๋๋ค.
Q4. scp๋ก ์๊ฒฉ ์๋ฒ ๊ฐ ์ง์ ์ ์ก์ด ๊ฐ๋ฅํ๊ฐ์?
A. ๊ฐ๋ฅํฉ๋๋ค:
scp user1@host1:/file user2@host2:/dest
Q5. scp๋ ์ํธํ๋์ด ์์ ํ๊ฐ์?
A. ๋ค. SSH ์ํธํ๊ฐ ์ ์ฉ๋ฉ๋๋ค.
17. scp ๋ช ๋ น์ด๊ฐ ํ์ผ ์ ์ก ํจ์จ์ ๋์ฌ์ฃผ๋ ์ด์
- SSH ๊ธฐ๋ฐ ๋ณด์
- ์ง๊ด์ ์ธ ๋ฌธ๋ฒ
- ํ์ผ + ๋๋ ํฐ๋ฆฌ ๋ชจ๋ ์ ์ก
- ํค ์ธ์ฆ·ํฌํธ ๋ณ๊ฒฝ·์๋ํ ์ง์
์ด ์กฐํฉ ๋๋ถ์ scp๋ ์ง๊ธ๋ ์ค๋ฌด ๊ฐ๋ฐ์๊ฐ ๊ฐ์ฅ ์์ฃผ ์ฐ๋ ๊ธฐ๋ณธ ํ์ผ ์ ์ก ๋๊ตฌ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ tar, rsync๊น์ง ํจ๊ป ์ตํ๋ฉด
๋ฆฌ๋
์ค ํ์ผ ๊ด๋ฆฌ ์์
์ 80% ์ด์์ด ํจ์ฌ ์์ํด์ง๋๋ค.
tar, rsync์ ํจ๊ป ์ตํ๋๋ฉด
๋ฆฌ๋ ์ค ํ์ผ ๊ด๋ฆฌ ์ ๋ฌด์ ๋๋ถ๋ถ์ ํจ์ฌ ํธํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.