이름만 들어도 엄청 강해보이는 이름이다.
실상은 서버용 리눅스에서 개발하기가 힘드니, 개인, 클라이언트 사이드에서 ssh로 리눅스에 접근해서 코딩을 하겠다는 그런 의미이다.
vs code가 설치되어 있다는 가정하에 진행하도록 하겠다 .
vscode를 실행하고 확장 프로그램으로 진입한다
진입 한 후, remote를 검색, remote development를 설치한다. 그러면 다른 것들도 같이 설치된다
f1 > remote를 치면 ssh configure라는 명령이 나온다. 이를 선택하고 c:\user\username.ssh\config
라는 항목을 선택한다.
다음과 같이 작성한다.
Host < 사용할 이름(아무거나 ok) >
HostName < 서버 ip 주소 >
Port <포트 번호 > (기본 22)
User <유저 이름 >
예시는 이러하다
Host anbe_homeserver
HostName 121.456.78.900
Port 22
User anbe
그리고 미리 작성한 프로필 접속하면 끝! 이다.
이런식으로 접속이 된다.
근데 이게 끝이 아니다. 지금부터 실행할 때 생겼던 문제들을 알아보도록 하자.
연결이 안되는 원인이 두개가 있었는데 하나는 내 개인적인 문제였고, 하나는 코드 config 문제였다.
firewall-cmd --permanent --zone=public --add-port=80/tcp
이런 명령어를 통해서 포트를 열어줘서 해결했다.
쓰고보니 정말 간단한데 정작 해결하는데는 좀 걸렸다...
port를 마지막에 쓰니깐 안됐다...
이제 막 세팅을 끝내고 딱 실행을 해보면, 갑자기 파일 오류가 떠버리는걸 볼 수 있다.
파일 'vscode-remote://ssh-remote+anbe_homeserver/home/anbe/c++/Hello.cpp'(NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/home/anbe/c++/Hello.cpp')을(를) 쓸 수 없음
이런 장문의 오류인데
아무튼 결론은 쓸 수 없다는게 핵심이다. 왜 쓸수 없을까?
바로 권한이 없기 때문이다.
우리가 접속한건 리눅스의 사용자지, root가 아니다.
사용자/home 디렉토리에서 mkdir로 아무파일이나 만들고
파일에서 ls -l로 권한을 살펴보면
전부 root 권한인것을 알 수 있다. (아니라면 아마 잘 작동했을것이다.)
우리는 당연히 루트사용자가 아니니깐 해당파일에 접근할수가 없고 이에 해결책이
chown 명령어이다.
해당명령어를 통해 파일 혹은 디렉토리의 주인을 현 사용자로 바꿔주면 다 끝난다!
사실 이걸 하게된거는 cpp socket 코딩을 해보려다가 헤더파일떄문에 막혀서 g++로 리눅스에서 직접 코딩하려나 vi / nano가 너무 불편해서 돌고 돌아서 찾은 방법이다.
이제 본격적으로 socket 코딩을 할 준비가 끝난것같다!
'
그리고 이유는 모르겠지만 remote로 접속하면 컴파일러도 다시 설정해야하는것 같다. 그냥 하니깐 echo처리되고 말아버린다.
ssh 개인기 공유키, 비밀번호없이 들어가기 이런 여러 방법들이 있지만 일단은 단순하게 비밀번호로 직접입력만 수행해보았다. 이런 방법들은 찾으면 많이 나오니 관심있으면 해보는게 좋을지도?
extension이 하나도 없어서 생긴 문제였다.
확장 탭에 들어가서 보면
이렇게 로컬이랑 원격ssh 확장을 모두 관리할 수 있는데
필요한것만 퍼와도 되고 아니면 저 구름표시를 눌러서 전부 내려받아도 된다.
그리고 json파일들을 설정하면 정상작동한다! 이라고 생각했는데 리눅스에 mingw 컴파일러를 깔아야 근본적으로 해결되는 문제같다. 나중에 해보자...
물론 이렇게 안하고 코드작성만 vs로 하고 저장한다음 ssh 터미널로 gcc 컴파일러를 이용해서 처리해도 되긴하는데 쓰기가 좀 불편하다