목록

댓글 15

  • rsync를 시도하기 전에 일단 A에서 B로 로그인할 수 있는지부터 확실하게 체크해 두셔야 합니다.

    계정명이 다르거나, 개인키/공개키 파일 퍼미션이 맞지 않거나, 다양한 이유가 있을 수 있어요.

  • @기진곰
    A는 putty 로그인할때 아이디 , 비밀번호 입력이고
    B는 putty 로그인할때 아이디 , ppk 파일입력이라서 그런걸까요?
  • @인베인
    A에서 B로 직접 로그인할 때는 putty도 아니죠... 환경이 전혀 다르고 ppk도 안 통해요.
  • @기진곰
    네 더 공부해보겠습니다. 감사합니다.
  • A에서 ssh 키를 만들고 public 키를 오라클 클라우드 서버에 넣거나 혹은
    오라클 클라우드 서버의 sshd 를 패스워드 인증이 가능끔 설정해서 해보세요.
  • A 호스팅 에서 ssh-keygen -t rsa -b 4096 를 통해서 키를 생성 합니다.
    만약 이미 키가 생성되었다면 이 과정은 생략 해도 됩니다

    생성되어있다면 키는 ~/.ssh 에 있습니다
    cd ~/.ssh
    ls -al

    없다면 위의 명령어로 키를 생성 해주세요


    키가 있거나 생성하였다면 공개키를 오라클 클라우드 계정에 넣어주세요
    A 호스팅에서
    cd ~/.ssh
    cat id_rsa.pub

    ssh-rsa xxxxxxxxxxxxxx
    <== 위와 같이 나오는 키를 그대로 긁어서(drag) 해서 복사 하세요

    그리고 오라클 클라우드 에서 authorized_keys 파일안에 위에서 복사한 공개키를 넣어주세요
    cd ~/.ssh
    vi authorized_keys


    입력이 완료 되었다면 A호스팅에서 오라클 클라우드로 접속을 시도 합니다.
    우분투를 사용하시면 기본 계정은 ubuntu 입니다.

    ssh ubuntu@오라클클라우드IP

    ssh 접속이 가능하다면 sftp 나 rsync 를 이용해서 파일을 전송하시면 됩니다.

     

     

    참고로 디렉토리와 파일의 아래의 퍼미션을 가지고 잇으면 됩니다.

    .ssh 디렉토리는 700

    authorized_keys 파일은 600  

     

  • @태랑

    오라클 클라우드에 .ssh 디렉토리와 authorized_key 파일이 없는데 새로 만들면 될까요?

     

    +) 아 찾았습니다. /home/ubuntu/에 있었네요.

  • @태랑
    시도했는데
    Unexpected remote arg: 가 뜹니다.

    rsync /test ubuntu@서버아이피: /home/

    으로 했는데 어디서 실수가 있을까요?
  • @인베인
    rsync -av /test ubuntu@서버아이피:/home/

    서버아이피:/경로 띄어쓰기 없이 붙여서 하세요.
  • @지혜바보
    감사합니다. 육아와 병행하면서 하느라 저녁때나 다시 시도해봐야하지만..ㅠㅠ
    잘 참고해서 해보겠습니다.
  • @인베인

    경로 조심하시라고 다른 질문글에서 말씀드렸는데요... 다행히(?) 아직 시도해보실 기회가 없으셨을 테니

    우선, A서버 쪽에 사이트가 올라가 있는 경로가 /test는 아닐 겁니다. 최소한 /test/www 정도는 되겠지요. 정확한 경로는 A서버에서 index.php가 있는 폴더에 들어가서 pwd 명령으로 확인할 수 있습니다. 그리고 뒤에 슬/래/시/가/ 있어야 합니다. 슬래시 빼먹으면 엉뚱한 곳에 복사될 수 있습니다.

    복사 대상 경로는 절대로 /home/이 될 수 없습니다. ubuntu 계정으로 로그인하고 있으니까 아무리 짧게 써도 /home/ubuntu/로 시작하는 뭔가가 되어야지, 그것보다 짧으면 자신의 홈디렉토리 바깥으로 나가니까 권한 에러가 납니다. 그런데 아까 /home/ubuntu/.ssh/ 폴더 안에 뭔가 설정하셨지요? 이거 잘못 건드리면 로그인이 안 되는 대참사가 일어날 수도 있습니다. 따라서 .ssh 폴더를 건드리지 않도록 /home/ubuntu/ 아래에 별도의 서브폴더를 만들어서 작업하는 것이 안전하겠습니다. 원본 쪽이 www라면 대상 서버에서도 똑같이 해놓는 것이 좋겠지요? 그렇다면 /home/ubuntu/www/ 입니다.

     

    그리고 저렇게 아무 옵션도 없이 rsync 명령에 경로만 넣어서 실행하시면 index.php 등 사이트 메인에 있는 파일 몇 개만 복사하고 그냥 끝날 겁니다. 폴더는 건드리지도 않죠...

  • @기진곰

    조금 더 자세히 풀어서 질문드립니다.
    A호스팅 사이트의 경우 ssh 로그인을 하면 /home/panic89 로 연결됩니다.
    저는 이곳에서 /home/panic89/test 폴더를 시범삼아 보내려고 합니다.
    처음 로그인을 하면 경로가 이미 /home/panic89 이기때문에 여기에서 rysnc test를 주면 바로 test를 보낼 수 있을 거라 생각했습니다.

    B 클라우드의 경우 ssh 로그인을 하면 /home/ubuntu 로 연결됩니다.
    그런데 이곳에 보내고 싶지 않고 /var/www/html/test 로 보내고 싶은거거든요.

    A호스팅에서, /home/panic89/ 경로에서
    rsync -av /home/panic89/test/ ubuntu@서버아이피:/var/www/html/test/ 로 보내면 되는걸까요?

     

  • @인베인
    맨 앞에 슬래시를 붙이면 절대경로가 되므로 전체 경로를 다 써야 합니다.
    뒤에만 슬래시를 붙여서 test/ 라고 한다면 현재 폴더 아래의 test 폴더를 보내는 것입니다.
    B서버의 /var/www/html 경로에 ubuntu 유저가 쓰기 권한이 있다면 가능하겠네요.
  • @기진곰
    네 되는것 같습니다. 테스중이긴합니다. 다만 속도가 너무 느려서
    제 인터넷 회선 문제일지, 호스팅사의 속도 문제일지 알아보고 있습니다. 감사합니다..^^
  • @지혜바보
    감사합니다 띄어쓰기 없이 붙여서 하니 잘 됩니다..^^