Development/e.t.c

[Powershell] Powershell에서 SSH등 쉘 기본 탑재 모듈이 사용 불가능

mkdir 2021. 10. 25. 23:50

원인

  • Windows의 환경변수 정책은 기본적으로 Linux와 동일하다. 즉, 리눅스에서 export SOMETHING_HOME등의 환경변수로 타겟 모듈의 홈 디렉토리를 특정하고, export PATH로 환경변수 경로에 $SOMETHING_HOME/bin등으로 실행 파일의 경로를 잡아주는 것과 동일한 프로세스를 지닌다는 뜻이다.
  • 그러므로 쉘에 기본으로 탑재된 모듈이 갑자기 사용불가능이 된다는 것은, 쉘의 업그레이드/재설치/변경로 인한 시스템 환경변수의 경로 설정이 잘못되는 경우도 원인이 될 수 있다.
  • 특히 Powershell 메이저 버전의 업그레이드 경우 이러한 일이 자주 발생하는데, 이유는 Powershell의 실행 파일들이 위치한 PSHOME변수가 어그러졌기 때문.

해결

  • 검색 > 시스템 환경변수 편집을 열어 환경 변수버튼을 클릭해 변수 편집 화면으로 진입한다.
  • 상단에는 사용자 개별 변수(~/.bashrc), 하단에는 시스템 전역변수(/etc/profile)가 위치한다. 어느 쪽에 설정해주던 상관은 없지만(관리자 권한을 사용하지 않는 전제 하에서는) 관리자 권한으로 쉘을 실행해야 할 경우가 반드시 생기기 마련. 전역 변수 쪽에 설정하는 것을 권장한다.
  • 전역 변수쪽에 잘 보면 Path라는 변수가 있다. 이게 바로 우리가 쉘에서 바로 모듈을 실행할 수 있도록 경로를 잡아주는 변수인데, 하단에 새로 설치한 Powershell의 경로를 잡아준다.
    • 예) 쉘의 경로가 C:\Users\dev\Powershell\7\pwsh.exe일 경우, C:\Users\dev\Powershell\7을 Path 경로에 추가
  • 변경 사항을 적용하고 OS를 재부팅한다. 이후에는 정상적으로 SSH 모듈이 동작하는 것을 확인 가능하다.