ssh sftp

이재홍·2022년 7월 8일
0

SSH (Secure Shell)

  1. 시큐어셀은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 프로토콜로 기본 22번 포트를 사용하여 통신합니다.

  2. 우분투 서버에 SSH서버를 설치후 사용가능합니다 (/etc/ssh 디렉토리 안에 sshd_config 파일이 있어야함)

SFTP (Secure File Transfer Protocol)

  1. ssh에 부가적으로 있는 기능들 중 하나로 FTP(파일전송프로토콜)와 같은 역할을 하지만 SSH접속시 사용하는 포트(22)를 사용하고 SSH접속 계정으로 로그인할 수 있는 FTP입니다.

vscode sftp extension

  1. git을 이용하여 push & pull로 작업상황을 맞추는것보다, 간편하게 싱크를 맞출수 있습니다.
  2. 서버에 ssh가 설치되어있어야합니다.
    => $ sudo apt update
    => $ sudo apt install openssh-server
    => $ sudo systemctl status ssh (SSH가 active 상태인지 확인)
    => $ sudo ufw status (방화벽이 inactive 상태인지 확인
    )
  • 만약 SSH가 inactive 상태라면
    => $ sudo systemctl enable ssh
    => $ sudo systemctl start ssh
  • 만약 방화벽이 active 상태라면
    => $ sudo ufw allow ssh
  1. 서버와 연결할 로컬의 폴더를 생성후 vscode에서 F1을 누르고 검색창에 sftp를 입력합니다.

  2. sftp:config 선택시 sftp.json 파일이 열립니다.

{
  "name": "test",
  "host": "111111.111.111",
  "protocol": "sftp",
  "port": 22,
  "username": "aaa",
  "password": "aaa",
  "remotePath": "/home/www/test",
  "uploadOnSave": false,
  "downloadOnOpen": true,
  "ignore": [".git", ".eslintrc.*", ".vscode", ".DS_Store", "node_module", "node_modules"]
}

name: 연결에 대한 설명
host: 연결대상(서버)의 IP주소
protocol: sftp
port: 22
username: 연결대상(서버) 사용자이름
password: 연결대상(서버) 사용자 비밀번호
remotePath: 연결대상의 파일 경로
uploadOnSave: 로컬에서 변경사항 저장시마다 동기화 할건지 여부
downloadOnOpen: 서버변경사항 있으면 vscode열때 동기화 할건지 여부
ignore: 무시할 폴더 및 파일들

  1. F1 => sftp:List all에서 불러오고 싶은 파일을 선택하거나
    모든 파일을 불러오고싶다면 맨위의 . choose current folder 클릭
    또는 sftp:Sync Remote -> Local로 동기화한다.

  2. 로컬에서 파일 변경 후 저장시 no such file 오류 발생한다면
    => C:/Users/"계정명"/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js
    경로에서 338번 라인

if (code === STATUS_CODE.OK) {
// 이 부분을
if (code === STATUS_CODE.OK || code === STATUS_CODE.NO_SUCH_FILE) {
// 이렇게 변경하고 저장 후 다시 로드해주세요

0개의 댓글