ssh를 통해 접속한 서버로
내 로컬에 있는 파일을 전송해야했다
우선 ssh 접속을 통해
파일을 원격으로 전송하는 명령어이다
scp [전송할 파일경로] [사용자명@전송서버ip주소]:[전송서버내 저장경로]
만약 따로 설정한 포트 번호가 있다면
scp -p [포트번호] [전송할 파일경로] [사용자명@전송서버ip주소]:[전송서버내 저장경로]
위와 같이 하면 된다
그런데 명령어를 사용해서
파일을 원격 전송하려 했더니
permission denied 에러가 발생했다
따라서 구글링을 해본 결과
3가지 정도의 경우의 수가 있다고 한다
1. 읽기 및 쓰기 권한 확인
전송하려는 파일이 있는 폴더에서
ls -al
명령어를 치면 읽기, 쓰기, 실행 권한을 확인할 수 있는데
읽기 및 쓰기 권한이 있는지를 확인해주자
가장 왼쪽의
-rw-r--r--
이런 식으로 적힌 부분을 확인해주면 된다
-r은 read(읽기)
-w는 write(쓰기)
-x는 excute(실행)
권한을 의미한다
-rw-r--r--와 같은 식으로 되어있다면
문제가 없다고 한다
2. 경로 및 포트가 맞는지 확인
내가 전송하려고 하는 디렉토리가 존재하는지
아니면 포트 번호를 제대로 적었는지를 확인해주자
3. 원격 저장소 디렉토리 권한
나같은 경우는 이게 원인이었다
전송할 원격 저장소의 디렉토리 권한이
root로 되어있는 경우
permission denied 에러가 발생한다
전송하려는 원격 저장소 디렉토리에서
ls -al
혹은
ll
명령어를 입력해준다
그러면
왼쪽에서 두 번째에
root 혹은 사용자계정이
적혀있는걸 확인할 수 있는데
이때 root로 적혀있으면
해당 디렉토리의 권한이
root라는 소리다
이게 root이면
원격 전송에 실패하기 때문에
디렉토리 권한을 변경해주어야 한다
sudo chown [권한 줄 사용자 계정] [디렉토리명]
다음과 같이 명령어를 입력한 뒤
다시 한 번
ls -al 혹은 ll 을 해주면
아마 디렉토리 권한이 설정한 사용자로
변경된 것을 확인할 수 있을 것이다
이렇게 해 준 다음
다시 scp 명령어를 통해
원격으로 전송해주면
다음과 같이 전송이 완료된다
그다음 원격 저장소에 들어가서
잘 들어갔는지 확인해주면
원하는 디렉토리에 파일이 올바르게
저장된 것을 확인할 수 있다
참고:
'기술 > 서버' 카테고리의 다른 글
[리눅스/우분투] 일반 사용자에게 root 권한 부여하기 (0) | 2024.07.30 |
---|---|
[리눅스/우분투] 새로운 사용자 계정 추가하기 (0) | 2024.07.30 |
[리눅스/우분투] 초기 root 계정 설정 (0) | 2024.07.30 |
[리눅스/우분투] 새로운 리눅스 서버에 openssh 설치 및 셋업하기 (0) | 2024.07.29 |