본문 바로가기
IT(Tip)

VS Code ssh 연결 (가비아 파이썬 호스팅 관련 셋팅)

by good4me 2021. 7. 28.

goodthings4me.tistory.com

가비아(gabia) 파이썬 호스팅(컨테이너 호스팅) 서비스를 가입하고 반 년이 지나서 사용해 보려고 접속했으나, VS Code SSH 연결이 초보자 실력으로는 접근하기가 쉽지 않았다.

 

 

[Visual Studio Code Remote-SSH로 가비아 파이썬 호스팅 연결하기]

원격 서버를 VS Code로 연결해서 작업 할 수 있을 것이라 생각하고, 자료를 찾아봤다.

VS Code 확장(extension) 플러그인으로 Remote Development를 설치하고, VS Code SSH 원격 연결을 통해 접근할 수 있는 방법이 있었다.

 

VS Code로 가비아 컨테이너호스팅 연결하기

■ VS Code에 Remote Development 플러그인 설치 후 콘솔에서 찾기

 

F1키를 누르고 remote ss 입력 후 Remote-SSH: Connect to Host 옵션 선택

 

+ Add New SSH Host... 선택

 

ssh 계정@도메인 입력 입력 (예, ssh sky123@emample.com)

 

C:\Users\user\.ssh\config 선택


good4me.co.kr


여기서 처음에는 Connect를 클릭했었는데, 연결이 안되었고, C:\Users\user\.ssh\ 폴더에 config 파일이 없었다.

이후 다시 반복 진행 후 하단의 Open Config 클릭함

 

여기까지 진행한 후, C:\Users\user\.ssh\ 폴더에 config 파일이 있는지 확인

 

다시 VS Code에서 F1 누르고 과정을 Remote-SSH... 찾아 클릭

 

config에 있던 '계정명'이 보이면 클릭

 

사용자 계정의 password를 묻는 메시지에 계정의 비밀번호 입력 (가비아 호스팅 패스워드 입력)

 

중간에 있는 폴더 열기 클릭

 

/web/ 확인

 

패스워드 다시 한 번 입력

 

예, 작성자를 신뢰합니다. 버튼 클릭

 

VS Code 연결 성공

 

새 터미널 만들고

 

터미널에서 일부 명령어 테스트 및 작업

 

[guser@python hello]$ ls
db.sqlite3  hello  manage.py
[guser@python hello]$ cd ..
[guser@python ~]$ ls
hello
[guser@python ~]$ cd ..
[guser@python /]$ ls
ls: cannot open directory .: 허가 거부
[guser@python /]$ ls
ls: cannot open directory .: 허가 거부
[guser@python /]$ cd hello
bash: cd: hello: 그런 파일이나 디렉터리가 없습니다
[guser@python /]$ python -V
Python 3.6.8
[guser@python /]$ pip --version
pip 20.3.3 from /web/.local/lib/python3.6/site-packages/pip (python 3.6)
[guser@python /]$ pip install --upgrade pip
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in /web/.local/lib/python3.6/site-packages (20.3.3)
Collecting pip
  Downloading pip-21.2.1-py3-none-any.whl (1.6 MB)
     |████████████████████████████████| 1.6 MB 1.0 MB/s 
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.3.3
    Uninstalling pip-20.3.3:
      Successfully uninstalled pip-20.3.3
Successfully installed pip-21.2.1

[guser@python /]$ django-admin --version
3.1.3
[guser@python /]$ pip --version
pip 21.2.1 from /web/.local/lib/python3.6/site-packages/pip (python 3.6)

[guser@python /]$ pip list
Package      Version
------------ -------
asgiref      3.3.0
click        7.1.2
Django       3.1.3
Flask        1.1.2
gunicorn     20.0.4
itsdangerous 1.1.0
Jinja2       2.11.2
MarkupSafe   1.1.1
pip          21.2.1
pytz         2020.4
setuptools   39.2.0
sqlparse     0.4.1
Werkzeug     1.0.1
[guser@python /]$

 

python manage.py runserver

 

 

■ 웹 애플리케이션 백그라운드 형태로 실행 테스트

o 웹 애플리케이션을 gunicorn과 함께 실행시킬 경우, 아래 명령어 입력

gunicorn hello.wsgi:application --bind 0.0.0.0:8080 --daemon
  • --bind 0.0.0.0:8080은 8080번 포트로 WSGI 서버를 수행한다는 의미이고, hello.wsgi:application은 WSGI 서버가 호출하는 WSGI 애플리케이션이 hello/wsgi.py 파일의 application이라는 의미
  • Gunicorn은 파이썬 프로그램을 실행하는 WSGI 서버
  • Gunicorn이 정적 파일을 제대로 읽지 못해서 페이지 로딩이 제대로 안될 수 있다는데...

 

o 웹 애플리케이션 정지 : kill -9 [pid]

※ ps -ef 명령으로  pid 확인

[guser@python ~]$ ps
   PID TTY          TIME CMD
  1836 pts/1    00:00:00 bash
  1858 pts/1    00:00:00 ps
[guser@python ~]$ ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0  2020 pts/0    01:39:02 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.c
root         10      1  0  2020 pts/0    00:00:00 /usr/sbin/rinetd
root         20      1  0  2020 pts/0    00:00:00 /usr/sbin/sshd -D
root        383     20  0 11:54 ?        00:00:00 sshd: guser [priv]
guser       385    383  0 11:54 ?        00:00:00 sshd: guser@notty
guser       386    385  0 11:54 ?        00:00:00 /usr/libexec/openssh/sftp-server
guser      1535      1  0 13:59 ?        00:00:01 /usr/bin/python3 /web/.local/bin/gunicorn hello.wsgi:appli
guser      1538   1535  0 13:59 ?        00:00:03 /usr/bin/python3 /web/.local/bin/gunicorn hello.wsgi:appli
root       1833     20  0 14:55 ?        00:00:00 sshd: guser [priv]
guser      1835   1833  0 14:55 ?        00:00:00 sshd: guser@pts/1
guser      1836   1835  0 14:55 pts/1    00:00:00 -bash
guser      1861   1836  0 15:09 pts/1    00:00:00 ps -ef
[guser@python ~]$ ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0  2020 pts/0    01:39:02 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root         10      1  0  2020 pts/0    00:00:00 /usr/sbin/rinetd
root         20      1  0  2020 pts/0    00:00:00 /usr/sbin/sshd -D
root        383     20  0 11:54 ?        00:00:00 sshd: guser [priv]
guser       385    383  0 11:54 ?        00:00:00 sshd: guser@notty
guser       386    385  0 11:54 ?        00:00:00 /usr/libexec/openssh/sftp-server
guser      1535      1  0 13:59 ?        00:00:01 /usr/bin/python3 /web/.local/bin/gunicorn hello.wsgi:application --bind 0.0.0.0:8080 -
guser      1538   1535  0 13:59 ?        00:00:03 /usr/bin/python3 /web/.local/bin/gunicorn hello.wsgi:application --bind 0.0.0.0:8080 -
root       1833     20  0 14:55 ?        00:00:00 sshd: guser [priv]
guser      1835   1833  0 14:55 ?        00:00:00 sshd: guser@pts/1
guser      1836   1835  0 14:55 pts/1    00:00:00 -bash
guser      1862   1836  0 15:10 pts/1    00:00:00 ps -ef
[guser@python ~]$ kill -9 1535
[guser@python ~]$ kill -9 1538
[guser@python ~]$

 

 

■ PuTTY 연결

① Host Name(or IP address) [사이트에 연결된 도메인/ 기본 도메인 / 웹 서버 IP] 중 한 가지 입력
② Port는 22 입력
③ [Open] 클릭

※ 입력정보 저장 원할 경우, Saved Sessions 에 저장 명칭 입력 후 Save 버튼 클릭

 

PuTTy 다운로드 https://www.chiark.greenend.org.uk/~sgtatham/putty/

예/아니오 중 선택

 

로그인 계정과 패스워드 입력

 

[guser@python ~]$
[guser@python ~]$ ls
hello
[guser@python ~]$ cd ..  # /web
[guser@python /]$ ls
ls: cannot open directory .: 허가 거부
[guser@python /]$ ls
ls: cannot open directory .: 허가 거부
[guser@python /]$ cd hello
-bash: cd: hello: 그런 파일이나 디렉터리가 없습니다
[guser@python /]$ cd web
[guser@python ~]$ ls
hello
[guser@python ~]$
[guser@python ~]$ mkdir doyagi
[guser@python ~]$ ls
doyagi  hello
[guser@python ~]$ cd doyagi
[guser@python doyagi]$ ls
[guser@python doyagi]$ 
[guser@python doyagi]$ django-admin startproject config .
[guser@python doyagi]$ ls
config  manage.py
[guser@python doyagi]$ python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 01, 2021 - 21:53:14
Django version 3.1, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[01/Aug/2021 21:53:18] "GET / HTTP/1.1" 200 16351
[01/Aug/2021 21:53:18] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[01/Aug/2021 21:53:18] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 85876
[01/Aug/2021 21:53:18] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 86184
Not Found: /favicon.ico
[01/Aug/2021 21:53:18] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 85692
[01/Aug/2021 21:53:18] "GET /favicon.ico HTTP/1.1" 404 1972

 

댓글