SSH 접속시 No Matching Key 문제

이런저런 문제로 계속 문제가 나와서 정리..

원인

OpenSSH 7.0이상에서 사용하는 알고리즘이 보안상의 이유로 Disabled 되었다.

해결방법

해결방법은 Disabled된 알고리즘을 사용할 수 있도록 하면된다.

수정 또는 추가 파일

  1. User별 설정파일

    • ~/.ssh/config

  2. 전역파일

    • /etc/ssh/ssh_config

추가 내용

vi ~/.ssh/config
Host *
KexAlgorithms +diffie-hellman-group1-sha1
HostKeyAlgorithms +ssh-dss
Ciphers +3des-cbc
Macs +hmac-md5
UserKnownHostsFile ~/.ssh/known_hosts

Posted by 다인,보리아빠
,

요즘의 웹어플리케이션 개발의 상당수가 Java를 이용한 Spring Frameworks으로 개발을 많이 한다.

Eclipse를 이용하거나 Eclipse 기반의 STS(Spring Tool Suite)을 이용하여 개발을 하게 된다.


대부분의 개발자들은 아래와 같은 식으로 개발을 하게 된다.

Eclipse에서 제공하는 Tomcat 을 이용하여 개발과 디버깅을 한다.

이 경우 개발환경이 대부분이 개인PC(대부분 Windows OS)에서 개발을 하게 된다.

개발과 디버깅시 실제 서비스가 실행되는 Linux 와는 환경적으로 다른점이 많다.


JPDA(The Java Platform Debugger Architecture)는 이러한 환경적인 문제를 해결할 수 있는 한 방법이다.

JPDA를 이용하면 Linux 에 설치 되어 있는 Tomcat내 소스에 대해서 기존에 Eclipse에서 디버깅 하던것을 할 수 있다.

즉 서버(예: LINUX)의 TOMCAT에 접속하여 디버깅을 할 수 있는 것이다.

더 쉽게 이야기해주면 특정 위치에 있는 Tomcat에 대해서 원격으로 디버깅이 가능하다는 것이다.


환경을 보면 

상용서버는 Linux, Tomcat

개발/스테이징 서버도 Linux, Tomcat

개발자가 개발과 디버깅시 : windows, Tomcat

JPDA 를 이용할시 디버깅시  : Linux(개발서버 또는 스테이징), Tomcat #사실 OS 구분없이 어느 Tomcat이든 가능하다.


JPDA를 이용하여 원격으로 Linux 에 있는 Tomcat 에 접속하기 위해서는 사전 작업이 필요하다.


아래 절차를 보면서 세팅을 해보도록 하자.

1. Linux 내 Tomcat JPDA Port 확인 및 Tomcat Start

#tomcat 의 bin 디렉토리로 이동 후 아래 명령 실행하여 JPDA PORT 를 확인한다.
[root@localhost bin]> grep JPDA_ADDRESS= ./catalina.sh
    JPDA_ADDRESS="8000"

#8000번 포트로 확인이 되었다.
#이제 Tomcat을 JPDA 모드로 실행을 시킨다.
[root@localhost bin]> ./catalina.sh jpda start
Using CATALINA_BASE:   /svc/webapp/was/tomcat6026
Using CATALINA_HOME:   /svc/webapp/was/tomcat6026
Using CATALINA_TMPDIR: /svc/webapp/was/tomcat6026/temp
Using JRE_HOME:        /usr/local/jdk1.6.0_20
Using CLASSPATH:       /svc/webapp/was/tomcat6026/bin/bootstrap.jar

# 포트가 정상적으로 열렸는지 확인해 본다.
[root@localhost bin]> netstat -nap | grep :8000
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      2348/java
# 이상 서버 세팅 끝!

    

2. Eclipse 또는 STS내 Remote Java Application 설정

- 이클립스(STS 포함) 디버그 버튼(벌레)의 화살표를 누른다.


- Debug Configurations... 을 선택한다.


- Remote Java Application 을 더블클릭한다.


- New_Configuration에 정보를 입력한다.

Name : 이름을 바꾸고 싶으면 편집.
Project : Browse 버튼을 선택하여 해당 되는 소스를 선택한다.
Host : 위의 리눅스 서버의 IP를 적어준다.
Port : 위 1번에서 확인하였던
JPDA_ADDRESS="8000"의 8000을 선택한다.

모든게 완료되면 Debug 버튼을 선택한다.


- 정상적으로 완료되면 아래와 같이 Thread 정보가 나오게 된다. 


3. Break Point 설정 및 Debug Perspective 사용

이후는 로컬에서 디버깅 하던 방법과 동일하다. 즉 Breakpoints, Watch, Variables 등등 모두 동일하게 사용하면 된다.
디버깅시에는 꼭 Debug Perspective를 이용하자.
Debug Perspective가 없다면 아래와 같이 추가할 수 있다.
메뉴 Window -> open 
Perspective를 눌러 Debug를 추가하거나 선택하면 된다. 



참고 사항

1. 내가 가지고 있는 소스가 서버와 일치해야 Break point 잡힌 부분이 상이하지 않게 된다. 개발서버(Linux)환경에서 쭈욱 디버깅하고 개발하고자 한다면 Autoftp와 같은 plugin 을 설치하여 소스 수정시 마다 자동으로 개발서버로 적용이 되도록 하면 좋다.

2. Tomcat 에 JNDI를 사용하고 있다면 그것은 그대로 사용된다. 모든 세팅은 서버에 되어 있는대로이며 단순하게 디버깅만 원격으로 되는 것이라고 생각하면 된다.

3. 톰캣과 이클립스로만 적어놓았지만 JPDA는 다른 WAS, 다른 IDE에서도 사용가능하다.

4. JSP 디버깅은 잘 안되기도 하니 참고하세요!



역시 개발자는 디버깅을 잘해야죠!

'디버깅' 카테고리의 다른 글

Android webview 디버깅 하기  (2) 2015.03.16
Posted by 다인,보리아빠
,

제가 자주 사용하는 몇가지 꿀팁입니다.

OS나 어떤 쉘을 사용하느냐에 따라서 상이한 부분이 있을순 있습니다.



1. 바로 이전 디렉토리로 이동하기

 cd -


2. history 를 빠르게 찾기.

CTRL + R 을 누르면 Reverse i Search 상태가 된다.
이후 입력하는 키워드를 history 에서 가장 최근의 것부터 검색하여 찾아 준다.


3. vi 사용로 파일 수정 후 실행을 반복 할 경우 편리하게 사용하기

ESC 후 :!bash  -> shell 이 실행되며 이 상태에서 실행 후 exit 를 하면 vi 로 돌아간다.
ESC 후 :!실행명령어 -> 바로 실행이 되며 실행 후 결과값이 출력되고 Enter를 치면 vi 로 복귀


3. 커서 이동

CTRL + A : 입력된 내용의 맨 앞으로 이동

CTRL + E : 맨 뒤로 이동

ALT + B : 한개 단어 이전(왼쪽)으로 이동

ALT + F : 한개 다음 이후(오른쪽)으로 이동


5. putty 사용시 화면 스크롤

CTRL + Page up/Down : 한줄씩 상하로 이동
SHIFT + Page up/Down : 화면에 출력되는 라인 수/2 만큼 상하로 이동


Posted by 다인,보리아빠
,