SSH 만으로 SCP 기능 흉내내기 Develop Tip

경우에 따라 ssh 데몬이 존재하는데 scp 명령이 없는 경우가 있습니다.
sftp 도 동작을 하려면 sshd 설정안에 

Subsystem sftp /usr/libexec/sftp-server

와 같은 것이 없거나, sftp-server 실행파일이 없다면 동작하지 않습니다.

그러나 이와 같은 경우 해당 ssh 만으로도 파일을 (바이너리 포함) 복사할 수 있습니다.



1) 원격으로 복사할 경우

$ cat local_file | ssh user@ssh_host 'cat - > remote_file'

와 같이 설정하면 되고,


2) 원격 파일을 복사해 올 경우

$ ssh user@ssh_host 'cat remote_file' > local_file

와 같이 하면 됩니다.


결국 터널링과 같이 리눅스의 파이프와 redirection을 이용한 파일 복사라 할 수 있습니다.


주의: 이렇게 복사하면 default permission을 가지게 되므로 실행 속성 등이 필요한 경우 chmod로 조종합니다.


어느 분께는 도움이 되셨기를 바랍니다.


핑백

덧글

  • 밀리네스 2013/01/04 12:29 # 답글

    중간에 gzip을 파이프로 걸어서 용량을 줄이거나, tar를 걸어서 여러 파일을 한번에 보내는 것도 가능하죠.
    유닉스는 정말 프로그래머에게 천국같은 환경입니다. ^^
  • 지훈현서아빠 2013/01/04 16:05 #

    cat 대신 gzip을 사용한다는 좋은 의견을 주셨네요,
    dd를 이용해도 좋겠다는 의견도 있었습니다.
    감사합니다~
댓글 입력 영역

구글애드텍스트