본문 바로가기

Linux(Ubuntu)

scp (Secure Copy Protocol) in Linux # ssh cp

728x90
반응형

scp

ssh 환경의 파일(디렉토리)를 cp(복사) 해오는 명령어
$ scp -r root@210.180.XXX.XXX:/root/workspace/tech_repo_list/REPO ./
$ scp -r root@210.180.XXX.XXX:/root/ADMIN_REPO ./
  ssh로 접속한 곳의(root@210.180.XXX.XXX:)
  해당 폴더를(/root/workspace/tech_respo_list/REPO)
  지정한 곳에(./)
  복사한다(scp)
  재귀적으로 (-r)

* 재귀적으로? -r

함수의 결과값을 다시 변수로 받아서 처리
a -> f(a) -> f(f(a)) -> f(f(f(a))) ...
디렉토리를 복사하는 경우, 디렉토리 안에는 파일외에 또 디렉토리가 있을 수 있다.
재귀적으로 복사하지 않으면 파일과 빈 디렉토리만 가져오게 된다(1 depth 경로만 가져오는 것)
디렉토리 안의 디렉토리 까지 전부 가져오기 위해서 재귀적으로 실행
파일 복사의 경우 다음과 같이 보면 됨
f(x): 해당 경로 복사
a: 1 depth 복사 결과값
f(f(f(f(f(f(a))))))... (하위 디렉토리가 없을때까지)
 
참고:
  * -r 옵션 안쓰려면? 압축해서 한번에 가져오기 (권장: 이게 더 빠르긴 하다)
 
    tar, tar.gz, zip 등 이용

 

** ssh key 관련

일반유저 (hwan@mail)
루트유저 (root@mail)
일반유저의 ssh-key를 remote에 등록해 놓은 경우
scp 명령어 사용 가능

루트 유저는 그럼 바로 scp 명령어 가능할까?
안된다.
루트 유저랑 일반 유저는 remote에서 봣을 때는 엄연히 다른 유저이기 때문에
루트 유저의 ssh key를 별도로 등록해주어야 한다.


more examples


To copy a file from your local system to a remote system:
scp /path/to/local/file username@remote:/path/to/remote/destination

 
To copy a file from a remote system to your local system:
scp username@remote:/path/to/remote/file /path/to/local/destination

 
To copy a directory and all its contents from your local system to a remote system:
scp -r /path/to/local/directory username@remote:/path/to/remote/destination

 
To copy a directory and all its contents from a remote system to your local system:
scp -r username@remote:/path/to/remote/directory /path/to/local/destination

 
By default, scp uses port 22 to establish a secure connection.
If you need to use a different port, you can specify it using the -P flag:
scp -P 2222 /path/to/local/file username@remote:/path/to/remote/destination

 
To copy a file and specify the location of your ssh private key (if you're not using the default ~/.ssh/id_rsa):
scp -i /path/to/private/key /path/to/local/file username@remote:/path/to/remote/destination
참고:
1) scp -i /path/to/private/key 만 별도로 쓸 수 없다.
2) -r 옵션 사용 가능(recursive)

 

728x90
반응형