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 모듈이 동작하는 것을 확인 가능하다.