centos5.3 ssh x11 forwarding 문제
글쓴이: astronux / 작성시간: 월, 2009/06/22 - 1:37오후
안녕하세요.
제목대로, 제가 사용하는 컴퓨터에 Centos5.3을 설치했구요.
제 컴퓨터(A)에서 ssh를 사용해서 다른 컴퓨터(B)에 접속해서, 다른 컴퓨터(B)의 터미널(xterm등) 등 X 프로그램을 띄울려니
xterm Xt error: Can't open display: <제 컴퓨터 ip주소>:0.0
이라는 에러메세지만 뜨고, 터미널이 안 뜹니다. 당연히 다른 X 프로그램들도 안 뜨구요.
A에서 'xhost +'를 해 주고, B에 접속하여, 'setenv DISPLAY <제 컴퓨터 주소>:0.0'이라고 명령을 내려고 난 뒤, X 프로그램을 띄워도 안 뜹니다.
그리고, A의 /etc/ssh/sshd_config 파일에서,
X11Forwarding
은 'yes'로 되어 있구요.
/etc/hosts.all, /etc/hosts.deny 모두 아무런 설정이 안 되어 있는 상태입니다.
인터넷에서 검색을 해 보니, 'xorg-X11-xauth'를 설치하면 된다고 하는 말도 있던데, 이 패키지는 당연히 설치되어 있는 상태입니다.
'ssh -X B' 로 해도 안됩니다.
어떻게 하면 될까요?
답변 부탁드립니다.
Forums:
참고삼아서 이렇게 해보세요.
로컬(A)에서의 xhost 명령, 그리고 리모트(B)에서의 DISPLAY 환경 변수 설정(setenv DISPLAY..)를 하지 마시고, 그냥 'ssh -X B', 혹은 'ssh -Y B' 명령으로 접속하고 그 상태에서 B의 xterm을 실행해보시기 바랍니다. ssh를 통해 X11의 포워딩을 하면, B 입장에서 볼 때 B의 로컬 채널로 X11 화면을 보내고 그 로컬 채널에서부터 A까지는 ssh가 알아서 담당하는 거 같더군요. 따라서 ssh 접속을 했을 때 수동으로 DISPLAY 변수를 A:0.0으로 하면 에러가 나는 거 같습니다.
그리고, A의 /etc/ssh/sshd_config 파일을 고쳐주는 것은, 외부에서 A로 접속할 때 자동적으로 X11 Forwarding을 해주기 위한 설정입니다. 이 경우는 A보다는 B에서의 /etc/ssh/sshd_config 파일이 제대로 설정되어 있는지 체크해보셔야 합니다. A에서 다른 서버로 접속할 때 자동으로 DISPLAY 변수 설정을 보내시려면, 즉 자동으로 -X나 -Y 옵션을 실행하도록 하시려면, A의 /etc/ssh/ssh_config 파일에서 관련 내용을 수정하셔야 합니다.
답변
답변 감사합니다.
말씀해주신대로, 'ssh -X'로 접속을 하니까 제대로 되는군요.
그런데, 처음에는 'ssh -X'로 접속을 해도 안되길래 애를 먹고 있었는데, 잠시 머리도 식힐 겸해서 yum으로 커널을 업데이트 하고 나서 재부팅을 하고 나니까,
'ssh -X'가 제대로 실행되더군요.
ssh는 업데이트가 안되고, centos5.3을 설치할 때의 버전 그대로인데 말이죠...
또 한 가지 이상한 건, 저번 주까지만 해도 centos5.0을 사용하다가 5.1, 5.3으로 차례대로 업그레이드를 한 시스템을 사용했었는데요.
이 때는 DISPLAY값을 설정하는 방법을 그대로 사용했었거든요.
어쨋든 문제 해결에 많은 도움을 주셔서 감사합니다.
꾸벅~
Astronomy+Linux
Astronomy+Linux
댓글 달기