setting of remote system environment for eclipse

원격지에서 ssh 통신으로 접속해서 작업을 하는데 eclipse 연동으로 작업을 하고 싶다면???

ssh key 복사 + sshfs + eclipse  구성이 정답이다.

ssh key 복사를 통해, ssh 접속시 비밀번호를 입력하지 않고도 바로 접속이 되도록 설정하고, sshfs 로 원격지 파일 시스템을 로컬 파일 시스템에 마운트한다.
그 다음, eclipse 를 통해 작업을 하는 것이다.

먼저 비밀번호 없이 ssh 로 접속하는 설정이 필요하다.다음을 참고하자.

http://pchero21.com/3034

이제 sshfs 를 구성하자. 아직 sshfs 가 설치되어 있지 않다면 다음의 명령어를 입력하자.

$ sudo apt-get install sshfs

이제 작업 공간 디렉토리를 마운트 시키자.

sshfs stk@test_server:absoulte_work_directory_path_of remote absoulte_mount_position_of_local

이제 eclipse 로 프로젝트를 하나 생성해서 프로젝트 위치를 방금 마운트 한 곳으로 지정하자.

그리고, 생성한 프로젝트에서 C/C++ Build -> Builder Settings -> Build command 항목을 아래와 같이 수정해주자.

ssh pchero@10.0.6.12 ‘bmake -C Absolute_path_for_working_directory_of_remote’

이제 프로젝트를 빌드할 때, 원격지에서 빌드를 수행하는 것을 확인할 수 있다.(필자는 bmake 를 사용하므로 bmake를 입력했다. 만약 gnu-make 를 사용한다면 그냥 make를 입력하도록 하자.)

한가지 단점이라면, 구성 자체가 ssh로 먼저 접속을 한 다음, 뒤따라오는 명령어를 수행하는 방식이기 때문에…
매번 빌드를 할 때마다 ssh 접속 오버헤드가 발생한다는 점이다.

ssh 는 RSA 키 조합의 특성으로 접속시 다소 시간이 오래 걸리는 편이다. 때문에 필자의 경우, sshfs를 통한 파일시스템 마운트 후, 빌드는 ssh 를 통하지 않고, 로컬 머신에서 하는 것으로 구성했다.

출처: http://sunjinyang.wordpress.com/2008/08/11/eclipse-with-remote-ssh-server/

ssh private key copy

ssh 개인키 정보를 접속하는 서버에 복사를 하게 되면, ssh 접속시, 별도로 비밀번호 입력없이 접속이 가능해 편리하다.

아직 ssh 개인키를 생성하지 않았다면 새로 생성하자.

$ ssh-keygen

이후, ~/.ssh 디렉토리에 개인키와 공개키 파일이 생성되는 것을 확인할 수 있다.

pchero@MyGalaxy:~/.ssh$ ls
id_rsa  id_rsa.pub  known_hosts

id_rsa 파일이 개인키 파일이고, id_rsa.pub 파일이 공개키 파일이다. ssh 통신에서 개인키 파일은 전자 상거래에서의 공인 인증서이다. 잘 보관하자.

 

이제 생성된 공개키 내용을 접속하고자 하는 ssh 서버에 입력해줘야 한다.접속하고자 하는 ssh 서버 계정의 ~/.ssh/authorized_keys 파일에 넣어줘야 한다.

만약 파일이 없다면 새로 생성하면 된다. 공개키 파일의 내용은 모두 TEXT 이므로 잘 긁어서 넣어주자.

이후, 테스트로 ssh 접속을 해보자. 비밀번호 입력없이 접속이 된다면 성공이다.만약 모두 정상적으로 입력했는데도 실패한다면, 다음을 참고하자.

필자의 경우, 암호 없이 ssh 접속이 안되어 ssh 로그 파일을 살펴보니 다음의 내용을 확인할 수 있었다.

Feb 17 17:44:29 stk-centos-6-x64-development sshd[5855]: Authentication refused: bad ownership or modes for file /home/pchero/.ssh/authorized_keys
Feb 17 17:44:36 stk-centos-6-x64-development sshd[5855]: Accepted password for pchero from 10.1.27.69 port 59982 ssh2
Feb 17 17:44:36 stk-centos-6-x64-development sshd[5855]: pam_unix(sshd:session): session opened for user pchero by (uid=0)
Feb 17 17:45:42 stk-centos-6-x64-development sshd[5861]: Received disconnect from 10.1.27.69: 11: disconnected by user
Feb 17 17:45:42 stk-centos-6-x64-development sshd[5855]: pam_unix(sshd:session): session closed for user pchero
Feb 17 17:46:49 stk-centos-6-x64-development sshd[5891]: Authentication refused: bad ownership or modes for file /home/pchero/.ssh/authorized_keys
Feb 17 17:46:50 stk-centos-6-x64-development sshd[5892]: Connection closed by 10.1.27.69

내용인즉, authorized_keys 파일의 퍼미션이 올바르지 않다는 것. 해당 파일의 퍼미션을 600 으로 바꿔주니 접속이 잘 되었다.

만약 위의 방법이 복잡하다면 다른 방법도 있다.

가장 쉬운 방법은 ssh-copy-id 를 사용하는 것이다.

ssh-copy-id user@hostname.example.com

이 명령어 하나면 자신의 공개키가 복사되고, 이후, 비밀번호 없이 ssh 접속이 가능해진다.