Untitled

<aside> 💡 프로토콜

컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계

</aside>

SSH란 Secure Shell Protocol, 즉 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜입니다. 대표적인 사용의 예는 다음과 같습니다.

  1. 데이터 전송

    1. 깃허브에 푸시할 때, ec2에 파일을 보낼 때

      - name: Deploy to EC2
              if: github.event_name == 'pull_request'
              uses: appleboy/scp-action@master
              with:
                host: ${{ secrets.MPT_HOST }}
                username: ${{ secrets.MPT_USERNAME }}
                key: ${{ secrets.MPT_PRIVATE_KEY }}
                source: "dist/*"
                target: "/home/ubuntu/mptfront/my-paldo-trip-fe"
      
  2. 원격 제어

    1. aws ec2 서버 설정을 할 때

      git bash를 통해 ec2에 접속할 때

      git bash를 통해 ec2에 접속할 때

      - name: Pull Docker Image and Compose up
              env:
                TIMESTAMP: ${{ steps.timestamp.outputs.timestamp }}
              uses: appleboy/ssh-action@master
              with:
                host: ${{ secrets.MPT_HOST }}
                username: ${{ secrets.MPT_USERNAME }}
                key: ${{ secrets.MPT_PRIVATE_KEY }}
                script: |
                  sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
                  sudo docker pull ${{ secrets.DOCKER_USERNAME }}/mpt:$TIMESTAMP
                  sudo docker stop $(sudo docker ps -q)
                  sudo docker rm $(sudo docker ps -aq)
                  export TIMESTAMP=${{ steps.timestamp.outputs.timestamp }};
                  sudo -E docker-compose up -d
                  sudo docker system prune -a -f --volumes
      

왜 굳이 ssh?

SSH 암호화 방식