윈도우를 사용하는 개발자들 중 wsl을 통해 리눅스를 설치해서 사용하는 경우가 있습니다.

간혹 윈도우에서 리눅스로 파일을 전달해야하는 경우가 있는데 2가지 방법을 쓸 수 있습니다.

 

첫째는 공유폴더를 만드는 방법이고

두번째는 scp(Secure copy protocol) 명령어를 이용하는 방법인데

 

개인적으로 공유폴더를 만드는 방법은 방화벽 설정과 유저 설정 등등 윈도우에서는 상당히 번거로웠습니다.

따라서 scp를 이용해 특정 파일 몇 개를 직접 전송하는 방법을 사용해보려 합니다.

 

참고 : https://baekh-93.tistory.com/50

 

필자는 윈도우 10과 리눅스 Ubuntu를 사용하였습니다.

 

 


 

 

우선 파일을 전송하기에 앞서 리눅스에서 몇가지 설정이 필요합니다.

 

ssh부터 설치해봅시다.

 

sudo apt-get install openssh-server

 

그리고 sshd-config에 두군데를 수정합니다.

에디터로 저는 vim을 사용하지만 nano 등 본인이 편하신 걸로 사용하시면 됩니다.

 

sudo vim /etc/ssh/sshd_config

 

기나긴 설정값들 사이에 두 부분을 다음과 같이 수정합니다.

 

#Port 22
-> Port 22
(주석을 해제합니다)
PasswordAuthentication no
-> PasswordAuthentication yes

 

첫 번째는 22번 포트를 여는 설정입니다. 이 부분을 수정해야 윈도우에서 22번 포트로 접근할 수 있습니다.

PasswordAuthentication은 리눅스 서버에 접속할 때 root 유저의 비밀번호를 사용하도록 허용하는 설정입니다.

기본값은 no이며 설정이 꺼져있으면 공개키를 사용해야합니다.

로컬에서만 돌릴 예정이므로 편하게 비밀번호를 사용합시다.

 

설정을 변경하였다면 저장합시다.

vim의 경우 :w! 을 먼저 입력해 readonly였던 파일을 수정 가능하게 변경해야합니다. !를 사용할 것이기 때문에 위에서 sudo를 사용한 것입니다.

 

설정을 변경했으니 ssh를 재실행합니다.

 

sudo /etc/init.d/ssh restart

 

22번 포트가 열렸는지 확인하고 싶다면 다음 명령어를 입력합니다.

 

netstat -ntl

 

위 사진을 확인하면 잘 열린 것을 볼 수 있습니다.

 

 

파일을 전송할 차례입니다. 윈도우 Powershell로 넘어옵시다.

명령어는 다음과 같습니다.

 

scp [전송할파일경로] [리눅스서버계정ID]@[리눅스서버계정IP]:[전송받을경로]

(예시)
scp .\test.txt root@10.0.0.1:\home\user01\share

 

여기서 확인해야할 사항은 서버계정 아이디와 IP입니다.

계정 아이디@IP는 우분투 터미널에 초록색 글자로 아이디@IP: 이렇게 쓰여있는걸 참고하셔도 됩니다.

 

@ 오른쪽 IP가 DESKTOP- 등으로 되어있다면 이를 입력했을 때 scp에서 접속이 어려운 경우가 있습니다.(저의 경우가 그랬네요)

 

이 경우 다음 명령어로 ip를 직접 확인해야합니다.

 

ifconfig

 

빨간색으로 가려준 부분에 적인 숫자가 ip입니다. 255.255.255.255 형식으로 적혀있습니다.

 

scp 명령어를 입력하고 password를 입력하면 전송이 완료됩니다.

만약 Are you sure you want to continue connecting (yes/no/[fingerprint])? 문구가 뜨면 yes를 입력해줍시다. 그 다음 password를 칠 수 있습니다.

명령어에 설정한 리눅스 해당 폴더에 가서 확인하시면 됩니다.

반응형

+ Recent posts