본문 바로가기
Linux

[linux] scp: Secure Copy Protocol

by ds31x 2024. 12. 26.

0.scp란?

scp 는 파일을 한 컴퓨터에서 다른 컴퓨터로 안전하게 복사하기 위한 명령어 및 프로토콜

  • SSH(Secure Shell) 프로토콜을 사용하여 데이터 전송 중에 암호화를 제공

1.로컬로 특정 파일 복사해오기 (download)

scp [-q] [-i ssh_keyfile] [user@]host:remote_source_file local_target_file
  • ssh_keyfile : ssh접속에 사용하는 비밀키파일.
  • user : 계정 id
  • host : ip 등.
  • remote_source_file : 복사할 대상 파일 경로 (절대경로, 혹은 ~/로 시작)
  • local_target_file : 로컬 장비에 복사될 결과파일명 (디렉토리만 지정시 같은 이름)

2.로컬의 특정 파일 호스트로 복사하기 (upload)

scp [-q] [-i ssh_keyfile] local_source_file [user@]host:remote_target_file
  • ssh_keyfile : ssh접속에 사용하는 비밀키파일.
  • user : 계정 id
  • host : ip 등.
  • local_source_file : 복사할 대상 파일 경로
  • remote_target_file : 호스트에 복사될 결과파일명 (절대경로, 혹은 ~/로 시작, 디렉토리만 지정시 같은 이름)

3. 그 외

3-0. Directory 복사

scp -r /local/directory/ user@remote_host:/remote/directory/

3-1. port 지정

scp -P 2222 file.txt user@remote_host:/remote/directory/

3-2. 주요 options

-r: 디렉토리와 하위 파일/폴더를 재귀적으로 복사
-P <포트 번호>: SSH 포트 지정
-i <키 파일>: SSH 개인 키 파일 사용
-C: 압축 활성화
-v: 상세 출력 (디버깅용)


Note:

If you’re using a private key file from the AWS console, you may have to connect via ssh2 before scp will work (You may see following message).

curl: (51) SSL peer certificate or SSH remote key was not OK
This is because `scp` is implemented on top of `curl` and the key won’t automatically work. Fix it by connecting with ssh2.
blink> ssh2 aws
aws$ logout

blink> #Retry scp and it will succeds

References

https://www.brantonboehm.com/code/blink-upload-to-ec2/

 

Uploading Files to EC2 with Blink

The Blink shell is a powerful ssh/mosh iOS app for developers. But how do you upload files from your device to your remote machine? Blink also has a local shell that lets you manage the files in its sandbox and the scp and sftp commands to transfer those t

www.brantonboehm.com


 

'Linux' 카테고리의 다른 글

[Linux] cron and crontab  (0) 2024.06.27
[linux] find 사용법.  (0) 2024.05.11
[linux] example: sed: -r or -E  (0) 2024.05.11
[linux] example: sed: -f option  (0) 2024.05.11
[linux] example: sed: -e option  (0) 2024.05.11