Linux에서 SCP 명령을 사용하는 방법

scp 명령을 사용하여 Linux 시스템에서 원격 시스템으로 파일을 전송하는 데 도움이 되는 쉬운 자습서입니다.

SCP는 '보안 복사'를 의미합니다. scpLinux에서 제공하는 명령줄 유틸리티로, 안전하지 않은 네트워크를 통해 한 시스템에서 다른 시스템으로 파일과 디렉토리를 전송할 수 있습니다.

한 시스템에서 다른 시스템으로 파일을 복사하려는 경우 scp파일과 디렉토리를 안전하게 전송할 수 있는 매우 좋은 옵션이 될 수 있습니다. 두 통신 기계가 동일한 네트워크를 통해 연결 scp되면 사용 이 가능합니다.

scp전송 중인 파일과 전송에 사용된 암호가 모두 암호화되어 있으므로 기밀성과 무결성 에 대한 명령 에 크게 의존할 수 있습니다 . 이 전송이 진행되는 동안 누군가가 트래픽을 스누핑하려고 해도 민감한 정보는 공개되지 않습니다.

이 자습서에서는 scp명령의 다른 예를 볼 것 입니다. 또한 scp명령 과 함께 자주 사용되는 몇 가지 옵션을 살펴보겠습니다 .

scp 명령 시작하기

다음 scp명령을 사용하여 파일/디렉토리를 전송할 수 있습니다.

  • 로컬 시스템에서 원격 시스템으로.
  • 두 원격 시스템 사이.
  • 원격 시스템에서 로컬 시스템으로.

일반 구문:

scp [Option] [source_file_name] [[email protected]_Host]:destination_folder

이 명령어의 기본 속성을 하나씩 알아봅시다.

  • [source_file_name] 복사하려는 소스 파일입니다.
  • [ [email protected] _Host] 파일을 복사할 원격 시스템의 사용자 이름입니다. 원격 시스템의 IP 주소는 이 속성에서 ' @' 기호 뒤에도 사용됩니다 .
  • [destination_folder] 복사한 파일을 저장할 디렉토리입니다.

참고: 콜론( :) 기호는 로컬 위치와 원격 위치를 구분하기 때문에 구문에 사용됩니다. :원격 시스템 에서 콜론( )을 사용하여 파일을 복사할 디렉토리를 지정합니다. 대상 디렉토리를 지정하지 않으면 파일이 원격 시스템 사용자의 홈 디렉토리에 복사됩니다.

함께 사용되는 옵션 scp

scp명령 과 함께 사용되는 가장 인기 있는 옵션 이 아래에 나열되어 있습니다.

옵션 설명
-C 전송할 파일의 압축 허용
-v 자세한 출력을 제공
-r 파일과 디렉토리를 재귀적으로 복사
-p 파일의 권한, 모드 및 액세스 시간 보존
-P scp명령에서 사용하는 기본 포트 변경

scp 명령과 함께 자주 사용되는 옵션

이 옵션의 예는 자습서에서 자세히 살펴보겠습니다.

로컬에서 원격 시스템으로 파일 복사

scp다음 구문을 사용하여 로컬 시스템에서 원격 시스템으로 파일을 전송할 수 있습니다. 이를 통해 원격에 위치한 서버로 파일을 전송하거나 업로드할 수 있습니다.

일반 구문:

scp [file_name] [email protected]:[destination_folder]

예시:

scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav

이 예에서는 'apache-tomcat-9.0.8.tar.gz' 파일을 로컬 시스템에서 IP 주소가 '143.110.178.221'인 원격 시스템으로 복사합니다.

원격 시스템에서 파일은 이제 'gaurav'라는 디렉토리에 복사됩니다.

산출:

[email protected]:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav
[email protected]'s password: 
apache-tomcat-9.0.8.tar.gz                           100% 9589KB  79.8KB/s   02:00    
[email protected]:~$ 

파일에 대한 원격 시스템의 출력을 확인하겠습니다.

[email protected]:~/gaurav# ls
apache-tomcat-9.0.8.tar.gz
[email protected]:~/gaurav#

따라서 scp명령을 사용하여 파일이 원격 시스템에 성공적으로 복사됩니다 .

원격 시스템에 여러 파일 복사

이전 예에서 scp명령을 사용하여 파일을 원격 시스템으로 전송하는 방법을 배웠습니다 . 이제 이 명령을 사용하여 로컬 시스템에서 원격 시스템으로 여러 파일을 전송하는 방법을 볼 것입니다.

일반 구문:

scp [file 1] [file 2] [file n] [email protected]_host:[specific directory]

이 간단한 과정을 예를 들어 이해해 봅시다.

예시:

scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav

여기에서 원격 시스템에 복사할 명령에 여러 파일이 언급되어 있습니다.

산출:

[email protected]:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav 
[email protected]'s password: 
ath.html                                      100%  199KB  94.7KB/s   00:02    
abc.txt                                       100%    0     0.0KB/s   00:00    
ppa-purge_0.2.8+bzr56_all.deb                 100% 4360    42.2KB/s   00:00    
[email protected]:~$

원격 시스템에서:

[email protected]:~/gaurav# ls -l
total 9800
-rw-r--r-- 1 root root       0 Oct  5 08:58 abc.txt
-rw-r--r-- 1 root root 9818695 Oct  5 08:35 apache-tomcat-9.0.8.tar.gz
-rw-r--r-- 1 root root  204057 Oct  5 08:58 ath.html
-rw-r--r-- 1 root root    4360 Oct  5 08:58 ppa-purge_0.2.8+bzr56_all.deb
[email protected]:~/gaurav#

이제 세 파일 모두 원격 시스템에 복사됩니다.

원격 시스템에 디렉토리 복사

scp명령을 사용 하여 로컬 시스템에서 원격 시스템으로 디렉토리를 복사 할 수 있습니다 . 프로세스는 파일 복사와 유사합니다. 디렉토리의 내용도 복사하려면 명령 -r과 함께 옵션을 사용할 수 있습니다 scp.

-r옵션은 디렉터리를 재귀적으로 복사하는 데 사용됩니다. 즉, 디렉토리 내의 모든 하위 폴더와 파일도 복사됩니다.

일반 구문:

scp -r [directory path] [email protected]_host:[target_directory]

예시:

scp -r PycharmProjects [email protected]:gaurav

산출:

[email protected]:~$ scp -r PycharmProjects [email protected]:gaurav
[email protected]'s password: 
__main__.py                                   100%  623     7.8KB/s   00:00    
__init__.py                                   100%   23     0.4KB/s   00:00    
completion.py                                 100% 2929    28.1KB/s   00:00    
search.py                                     100% 4728    38.7KB/s   00:00    
uninstall.py                                  100% 2963    32.5KB/s   00:00    
hash.py                                       100% 1681    21.3KB/s   00:00    
check.py                                      100% 1430    16.8KB/s   00:00    
configuration.py                              100% 7125    50.4KB/s   00:00    
show.py                                       100% 6289    49.8KB/s   00:00    
download.py                                   100% 6623    48.2KB/s   00:00  
[email protected]:~$  

명령 -r과 함께 옵션을 사용하면 scp디렉터리 내의 모든 하위 폴더와 파일이 로컬 시스템에서 원격 시스템으로 복사됩니다.

scp 프로세스에 대한 자세한 정보 표시

-v(소문자 v) 옵션을 사용하여 원격 또는 로컬 시스템에서 복사 중인 파일에 대한 정보를 표시 할 수 있습니다 . 이러한 유형의 출력을 자세한 출력이라고도 합니다.

이 옵션을 사용하면 파일에 대한 전체 디버그 정보가 화면에 표시됩니다.

일반 구문:

scp -v [file_name] [email protected]_host:

예시:

scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team

산출:

[email protected]:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Executing: program /usr/bin/ssh host 159.89.170.11, user root, command scp -v -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/gaurav/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 159.89.170.11 [159.89.170.11] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/gaurav/.ssh/id_rsa type -1
apache-tomcat-9.0.8.tar.gz                                                                                          100% 9589KB  99.8KB/s   01:36    
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 9826736, received 4016 bytes, in 97.2 seconds
Bytes per second: sent 101133.9, received 41.3
debug1: Exit status 0
[email protected]:~$

여기에서 출력 scp에서 -v옵션 과 함께 명령을 사용할 때 파일의 디버그 정보가 터미널에 표시 되는 것을 볼 수 있습니다.

두 원격 호스트 간에 파일 전송

Linux를 사용하면 여러 원격 호스트에 연결할 수 있습니다. scp명령을 사용하여 두 원격 호스트 간에 파일과 디렉토리를 전송할 수 있습니다 .

일반 구문:

scp [email protected]_1:/[file_name] [email protected]_2:[folder_to_save]

The syntax may seem a bit wider but is pretty simple. Here, the the first part of the command gives the input about the remote user from where the file is to be copied. colon (:) and / is used to specify the file name or the directory name which is to be transferred between the two remote machines.

The second part gives information about the target remote system where the file is to be copied.

Example:

scp -r [email protected]:gaurav [email protected]:/team

Here, we will be copying a directory named ‘gaurav’ recursively from the local system to a remote system. The file will be copied to a folder ‘team’ on the remote system.

Output:

[email protected]:~$ scp -r [email protected]:/gaurav [email protected]:/team 
[email protected]'s password: 
1.py                                          100%  134   261.3KB/s   00:00    
variables.py                                  100%  377   949.2KB/s   00:00    
abc.txt                                       100%    0     0.0KB/s   00:00    
ath.html                                      100%  199KB  41.8MB/s   00:00    
[email protected]:~$

Here, we used the scp command on the local system to transfer a directory named ‘gaurav’ from one remote server to another.

Transfer files from the remote system to your local system

scp명령을 사용하여 원격 시스템에서 로컬 시스템으로 파일 또는 디렉토리를 쉽게 전송할 수 있습니다 . 간단히 말해서 scp 명령을 사용하여 원격 서버에서 로컬 시스템으로 여러 파일 또는 디렉토리를 다운로드할 수 있습니다 .

일반 구문:

scp [email protected]_host:/files/file.txt /[folder_of_local_system]

산출:

[email protected]:~$ scp [email protected]:how.txt .
[email protected]'s password: 
how.txt                                                                                                             100%   11     0.1KB/s   00:00    
[email protected]:~$

여기에서 원격 서버에서 내 홈 디렉토리로 파일을 다운로드(복사)했습니다. 따라서 .파일을 내 홈 디렉토리에 복사하는 명령을 지정하기 위해 점( )을 사용했습니다.

샘플 출력:

[email protected]:~$ ls -l how.txt
-rw-r--r-- 1 gaurav gaurav 11 Oct  6 09:49 how.txt
[email protected]:~$ 

이제 파일이 원격 서버에서 내 홈 디렉토리로 복사됩니다.

같은 방법으로 scp적절한 옵션과 함께 명령을 사용하여 원격 서버에서 여러 파일이나 디렉터리를 다운로드할 수 있습니다.

더 빠른 전송을 위해 파일 압축

경우에 따라 대용량 파일을 전송하는 데 시간이 오래 걸릴 수 있습니다. 이 문제는 (대문자 ) 옵션 scp과 함께 명령 을 사용하는 동안 해결할 수 있습니다 .-CC

-C 옵션을 사용하면 더 빠른 전송을 용이하게 하여 시간을 절약할 수 있는 더 큰 크기의 파일을 압축합니다.

이 옵션에 대한 한 가지 흥미로운 사실은 대상 시스템에서 파일이 원래 크기로 복사되지만 전송 프로세스 중에 더 빠른 전송을 가능하게 하기 위해 크기가 압축된다는 것입니다. 따라서 압축은 네트워크에서만 수행됩니다.

일반 구문:

scp -C [file_name] [email protected]_host:[target_folder]

차이점을 이해하기 위해 비교 예를 살펴 보겠습니다.

-C 옵션 없이 전송:

[email protected]:~$ scp -rv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7516504, received 4008 bytes, in 74.6 seconds
Bytes per second: sent 100693.7, received 53.7
debug1: Exit status 0
[email protected]:~$ 

위의 출력에서 ​​우리는 전송에 필요한 시간이 74.6초임을 알 수 있습니다. -C 옵션을 사용하여 동일한 파일을 전송하려고 시도하고 차이점을 관찰합니다.

-C 옵션으로 전송:

[email protected]:~$ scp -Crv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.
.
.
webupload.img                                                                                                       100% 1834KB  98.7KB/s   00:18    
Sending file modes: C0664 1877552 router.img
Sink: C0664 1877552 router.img
router.img                                                                                                          100% 1834KB 100.3KB/s   00:18    
Sink: E
Sending file modes: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
Sink: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
DSL-2750U-Release-IN-T-01.00.07.zip                                                                                 100% 3666KB 218.5KB/s   00:16    
Sink: E
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7518864, received 3828 bytes, in 51.0 seconds
Bytes per second: sent 100245.4, received 51.0
debug1: Exit status 0
debug1: compress outgoing: raw data 7511925, compressed 7513136, factor 1.00
debug1: compress incoming: raw data 1467, compressed 999, factor 0.68
[email protected]:~$

여기 -C에서 scp명령 과 함께 옵션 을 사용 하면 네트워크를 통해 파일을 압축할 수 있으므로 시간을 절약할 수 있는 옵션임을 쉽게 알 수 있습니다.

파일 전송에 다른 ssh 포트 사용

scp명령을 사용하는 동안 배포되는 기본 포트는 port 22. 사용자는 이 포트 선택을 사용자 정의할 수 있습니다. 당신은 사용할 수 있습니다 -P와 함께 (대문자 P 옵션을) scp선택의 포트를 사용하도록 명령.

일반 구문:

cp -P [new_port_number] [file_name/directory_name] [email protected]:[destination_folder]

예시:

scp -P 4248 dlink [email protected]:team

위의 명령을 사용하여 파일을 원격 서버로 전송합니다. 하지만 이번에 port 4248는 기본 포트 대신 사용된 포트가 사용됩니다 port 22.

결론

이 튜토리얼을 통해 scp한 시스템에서 다른 시스템으로 파일을 전송하거나 복사하는 데 사용되는 명령 의 동적 특성에 대해 배웠습니다 . 이 옵션을 사용하여 원격 서버에서 파일이나 디렉터리를 다운로드할 수도 있습니다. 따라서 scp둘 이상의 시스템과 원격 서버를 동시에 처리해야 하는 경우 명령이 파일 전송에 매우 유용하다는 결론을 내릴 수 있습니다 .


Chromebook에서 복사하여 붙여넣는 방법

Chromebook에서 복사하여 붙여넣는 방법

Chromebook으로 전환할 때 가장 먼저 궁금해할 수 있는 것은 이전 OS에서 손에 꼽히던 것과 같은 기본적인 작업을 수행하는 방법입니다. 복사 및 붙여넣기는 한 지점 또는 다른 지점에서 사용해야 하는 기본적인 기능 중 하나입니다.

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

기술의 현대 시대에 타이핑은 많은 직업에서 가장 일반적인 활동 중 하나가 되었습니다. 정확하게 입력하는 법을 배우면 같은 시간에 더 많은 일을 할 수 있습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu는 견고성과 비교적 적은 오류로 유명합니다. 그러나 확실히 문제가 많은 것은 아닙니다. 그러한 문제 중 하나는 Wi-Fi 드라이버에 있습니다. Wi-Fi가 작동하지 않는 경우에만 시스템 전원을 켤 수 있습니다.

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점이 무엇인지 궁금하십니까? 글쎄, 우리는 당신을 여기에서 다루었습니다.

Chromebook에서 QR 코드를 만들고 스캔하는 방법

Chromebook에서 QR 코드를 만들고 스캔하는 방법

빠른 응답 코드 또는 QR 코드는 기존 바코드보다 더 많은 정보를 포함하는 고급 바코드입니다. 이 코드는 2차원이므로 세로 또는 가로로 스캔할 수 있습니다.

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에 패키지를 설치하고 싶지만 방법을 모르십니까? 많은 사람들이 Debian 기반 배포판에서 Arch로 처음 마이그레이션할 때 이 문제에 직면합니다. 그러나 패키지 관리자를 사용하여 Arch 기반 시스템에서 패키지를 쉽게 관리할 수 있습니다.

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu에서는 기본적으로 창 대신 응용 프로그램을 전환할 수 있습니다. Ubuntu의 Alt-Tab에서 이를 반대로 하고 탭을 그룹 해제하는 방법은 다음과 같습니다.

Linux에 Spotify를 설치하는 방법

Linux에 Spotify를 설치하는 방법

Spotify는 가장 큰 음악 스트리밍 서비스 중 하나입니다. 모바일(Android 및 iOS) 및 데스크톱(Mac 및 Windows) 장치 모두에 대한 기본 클라이언트가 있습니다.

Linux를 시작하는 9가지 기본 명령

Linux를 시작하는 9가지 기본 명령

Linux 사용법 가이드는 터미널에서 특정 작업을 수행할 것으로 예상하는 경우가 많으며, 이는 처음에는 겁이 날 수 있습니다. 그러나 걱정하지 마십시오. 이 Linux 명령 치트 시트는 터미널을 열고 몇 가지 유용한 명령을 실행하는 과정을 다룹니다.

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

Ubuntu 20.04s의 새로운 GNOME 데스크탑에 새로 업데이트된 많은 테마를 설치할 준비가 되었습니다. 2020년 최고의 우분투 테마 목록은 다음과 같습니다.