본문 바로가기

server

특정 서버를 경유해야하는 SSH, SCP 설정(ProxyJump)

목차

    특정 서버를 경유해야하는 SSH, SCP 설정

    local PC에서 직접적으로 접속할 수 없는 서버에 접속해야하는 경우가 생길때가 있다.

    예를 들어 서버에 설치된 VM이나, docker에 접근하게되는 경우가 있다.

    간단한 방법으로는 local PC에서 중간경유서버로 ssh연결을 한 뒤, 중간경유서버에서 다시 ssh로 target server에 연결하면 된다.

    하지만 이중으로 연결하는것은 한번쯤이야 할만 할 수 있지만, 여러번 접속해야한다면 귀찮아질 수 밖에 없다.

     

    해결법

    ssh -J 옵션을 이용해 proxyjump를 적용하면 된다.

    ssh -J proxy_user@proxy_server:port target_user@target_server:port

    위와같은 코드 한줄로 바로 접속할 수 있다.

    ssh config를 이용하면 ProxyJump 키워드를 이용하면 된다.

    Host Proxy_server
      HostName pro.xys.erv.er
    # Port Proxy_server_port
      User Proxy_user
    
    Host Target_server
      HostName Tar.get.ser.ver
    # Port Target_server_port
      User Target_user
      ProxyJump Proxy_server
      
    #if port != 22:
    #  Port must exist

    ssh config를 설정하면 ssh 및 scp를 매우 간단하게 실행할 수 있다.

    ssh Target_server
    scp ~/myfile Target_server:/path/to/target_server/myfile

     

    비밀번호 없이 SSH, SCP 실행

    clients에서 ssh keygen을 이용해 id_ras.pub가 생성되면 server의 ~/.ssh/authorized_keys에 옮겨 적으면 비밀번호 입력없이 접속이 가능해진다.