Linux 서버에 액세스할 때 몇 가지 옵션이 있습니다. 사용자 인터페이스가 있는 서버인 경우 VNC를 사용할 수 있지만 더 일반적인 옵션은 Secure Shell 또는 SSH를 사용하여 헤드리스 서버에 로그인하는 것입니다. SSH 클라이언트를 통해 원격 시스템에 액세스할 수 있는 암호화된 보안 프로토콜입니다. 그러나 일부 파일을 서버로 보내고 싶을 수도 있습니다. 이를 위해 안정적인 SSH 프로토콜을 통해 실행되는 SCP(Secure Copy)라는 프로그램을 사용하여 네트워크를 통해 원격 시스템으로 파일을 빠르게 전송할 수 있습니다. 여기에서는 Linux에서 SCP를 사용하여 안전하게 파일을 전송하는 방법을 보여줍니다.
SSH 구성
서버(또는 액세스하려는 원격 시스템)에 SSH 서버를 설치해야 합니다. Linux에서 가장 일반적인 것은 OpenSSH 서버입니다. 설치하려면 다음 명령 중 하나를 실행할 수 있습니다.
# Debian/Ubuntu-based server sudo apt install openssh-server # Fedora/Centos sudo dnf install openssh-server
배포판에 따라 일부 소프트웨어 방화벽을 통해 SSH를 허용해야 할 수도 있습니다. Ubuntu에서는 이 문제가 존재하지 않지만 CentOS에서는 다음 명령도 실행해야 합니다.
sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload
이 시점에서 SSH 클라이언트가 필요합니다. 대부분의 배포판에는 OpenSSH 클라이언트가 설치되어 있습니다. 하지만 그렇지 않다면 다음 명령어로 설치하세요:
# Debian/Ubuntu-based distro sudo apt install openssh-client # Fedora sudo dnf install openssh-client
SSH를 통해 시스템에 연결
SCP를 어지럽히기 전에 SSH가 작동하는지 확인합시다. SSH를 통해 연결하기 전에 서버의 IP 주소를 검색해야 합니다. 그래픽 서버에서 IP 주소는 시스템 설정의 네트워크 애플릿에 표시됩니다. 대부분의 서버에서는 ip
를 사용해야 합니다. 터미널에서 명령.
ip a s
출력에서 inet
로 시작하는 줄을 찾습니다. eth0
아래 또는 enp1s0
, 네트워크 인터페이스가 시스템에 연결되는 방식에 따라 다릅니다. 제 경우에는 192.168.122.201입니다.
SSH 연결을 테스트하려면 Linux 클라이언트 시스템으로 이동하고 다음을 입력하십시오.
ssh [email protected]
"user"를 서버의 실제 사용자 이름으로 변경합니다.
해당 계정의 비밀번호를 입력하면 비즈니스가 시작됩니다. "호스트의 진위 여부를 확인할 수 없습니다."라는 질문을 받으면 질문에 "예"라고 대답합니다. 사기꾼이 아닌 실제 서버에 연결하고 있는지 확인하기 위해 고안된 보안 검사입니다. 서버에 직접 로그인할 때 보는 것과 동일한 프롬프트가 클라이언트 시스템에 나타나야 하며 이는 연결이 성공했음을 의미합니다. 또한 다음 단계를 진행하기 전에 최대 보안을 위해 SSH 연결을 구성해야 합니다.
SCP를 사용하여 파일 전송
이제 SSH 연결을 테스트했으므로 두 시스템 간에 파일 복사를 시작할 수 있습니다. scp
를 사용하여 보안 복사를 수행합니다. 명령. scp
의 기본 형식 명령은 다음과 같습니다.
scp /PATH/TO/FILE USER@IP-ADDRESS:PATH/TO/DESIRED/DESTINATION
예를 들어, "backup.txz" 파일을 로컬 시스템에서 IP 주소가 192.168.1.101인 원격 서버의 사용자 "maketecheasier" 홈 디렉토리에 있는 "backups" 폴더로 복사하려면 다음을 사용하십시오.
scp backup.txz [email protected]:~/backups/
ssh
를 사용하여 연결할 때와 유사 , 암호를 묻는 메시지가 나타납니다. 명령에 지정된 대로 사용자 이름을 입력하라는 메시지가 표시되지 않습니다.
다음과 같은 와일드카드를 사용할 수도 있습니다.
scp *.txz [email protected]:~/backups/
원격 서버에서 로컬 시스템으로 파일을 복사하려면 매개변수를 반대로 하면 됩니다.
scp [email protected]:~/backups/backup.txz .
표준 cp
와 마찬가지로 "현재 디렉토리"를 의미하는 명령 끝에 있는 점을 확인하십시오. 또는 mv
명령. 원하는 경우 다른 디렉토리를 쉽게 지정할 수 있습니다.
scp -r [email protected]:~/backups/ backups-from-server/
와일드 카드도 마찬가지입니다.
scp [email protected]:~/backups/*.txz .
디렉토리를 원격 서버에 재귀적으로 복사하려면 -r
옵션:
scp -r backups/ [email protected]:~/backups/
그리고 원격 서버에서 로컬 시스템으로 디렉토리의 재귀 사본을 복사하려면 다음을 사용하십시오.
scp -r scp -r [email protected]:~/backups/ .
시도할 다른 SCP 명령
더 진행하려면 -C
를 사용해 보십시오. 복사 중 압축을 활성화하는 옵션 또는 -l
복사하는 동안 대역폭을 제한하는 옵션입니다.
매번 비밀번호를 입력하지 않고 파일을 전송하려면 개인 SSH 키를 생성하여 서버에 연결할 수도 있습니다.