<aside> 💡 프로토콜
컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계
</aside>
SSH란 Secure Shell Protocol, 즉 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜입니다. 대표적인 사용의 예는 다음과 같습니다.
데이터 전송
깃허브에 푸시할 때, 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"
원격 제어
aws 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
FTP (File Transfer Protocol)
TCP/IP 를 통해 파일을 송수신하기 위해 고안된 프로토콜
대량의 파일을 처리할 때 사용, 웹 개발 시 유용, 폐쇄형 시스템 내에서 대량의 서버 배치 파일을 간단하게 전송
빠른 파일 송수신이 목적이므로 보안이 취약
SFTP (SSH File Transfer Protocol)
텔넷(Telnet)