Jupyter Notebook에서 가상환경 커널 연결하기
아래의 단계를 따라가 모든 설정을 완료했다면,
또다시 접속할 때는
========= 서버 linux 환경 =========
# STEP 1. 가상환경 활성화
conda activate myenv
# STEP 3. jupyter notebook 실행
# .ipynb 열려 있는 폴더에서 실행 :
cd workspace/nasw/download
jupyter notebook
========= 로컬 CMD 환경 =========
# (STEP 4)공개키 기반 인증 SSH 서버 접속 시
ssh -i C:\Users\niaaiuser05\.ssh\id_rsa -L 8888:localhost:8888 ubuntu@10.x.x.xxx
========= 로컬 크롬 실행 =========
STEP 3 에서 실행하던 서버의 jupyter notebook 의, 연결 주소를 복붙하여, 로컬의 크롬에서 실행.
커널을 눌러보면, 내가 만든 가상환경인 'myenv'를 확인할 수 있다!!!!


해결하지 못한 점 (? 해결이 될 수 없는 부분,,)
로컬에서 SSH로 포트포워딩한 환경은 서버가 보기엔 "새로운 접속자"로 인식된다. 그래서 권한 문제로 코드를 수정할 수 없고 read-only 가능하다...
그래서,, 실제 서버 접속해서 코드를 수정해 나가고 + 커널 환경에서 실행 하자 ~~~~
- 10.x.x.xxx:8888 접속 : 서버에 base 환경이나 시스템 백그라운드에서 Jupyter가 실행됨 → myenv 인식 안됨. ⇒ 코드 수정 가능
- localhost:8888 접속 : 직접 myenv 가상환경에서 jupyter notebook 실행함 → myenv 커널 인식됨 ⇒ read-only 코드 실행만 가능
STEP 1. 가상환경 활성화
예를 들어, 가상환경 이름이 myenv라면 :
conda activate myenv
STEP 2. 가상환경을 Jupyter 커널로 등록
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
--name : 내부 커널 이름 (CLI에서 사용됨)
--display-name : Jupyter에서 보이는 이름 (알기 쉽게 설정 가능)
STEP 3. jupyter notebook 실행
.ipynb 열려 있는 폴더에서 실행 :
jupyter notebook
# 혹시 notebook 패키지가 설치 안 되어있다면, 현재 가상환경 안에 설치해주자.
# pip install notebook

여기서 포트 번호를 알 수 있다. 다음 STEP에서 ssh -L 포트번호:localhost:포트번호 입력해주면 된다.!!
STEP 4. jupyter notebook 접속
(i) 위 사진의 빨간색 박스 부분의 url을 복사해서, 브라우저 주소창에 붙여놓으면 접속 완료.
(ii) 또는...
내가 실행하고자는 jupyter notebook 은 원격 서버이다.

그래서 곧바로 접속이 안 된다.
원격 서버라면 터미널(CMD)에서 로컬 포트 포워딩을 한 후
ssh -L 8888:localhost:8888 ubuntu@서버주소
그리고 로컬 브라우저에서 http://localhost:8888로 접속하면 된다.
* jupyter notebook을 실행한 터미널에서 포트 번호를 확인하고, 그 포트 번호를 넣어줘야 한다! 8888이 아닐 수도 있다!!
(iii) 근데 또,,
지금 상황은 Windows PC에서 원격 서버(10.x.x.xxx)에 SSH 접속을 시도했는데, 에러가 떴다.

해당 서버는 비밀번호 로그인이 아니라 공개키(public key) 기반 인증만 허용하고 있다.
즉, SSH 키가 등록되어 있지 않으면 로그인 자체가 안 된다.
SSH 키를 생성하고 설정해주자.
(iii - 1) 로컬에서 SSH 키 쌍 생성하기 (Windows CMD나 PowerShell)
ssh-keygen -t rsa -b 4096 -C "test@test"
# 따옴표 안에 아무거나 넣어도 무방해. 그냥 구분용일 뿐임. 단순히 키 파일 안에 주석으로 들어가는 설명 문자열이야.

(iii - 2) 공개키 내용 복사해서 → 서버에 붙여넣기
id_rsa.pub를 메모장으로 열기. 텍스트 '복사 (CTRL+C) ' 하자.
서버의 /home/유저이름/.ssh/authorized_keys 파일에 '붙여넣기 (CTRL+V) ' 하자.


드디어! 접속했다!
ssh -i C:\Users\niaaiuser05\.ssh\id_rsa -L 8888:localhost:8888 ubuntu@10.x.x.xxx

STEP 2 에서 실행하던 서버의 jupyter notebook 의, 연결 주소를 복붙하여, 로컬의 크롬에서 실행.
커널을 눌러보면, 내가 만든 가상환경인 'myenv'를 확인할 수 있다!!!!
