2011-11-16 3 views
13

저는 제 랩탑에서 작동하도록 X11 포트 포워딩을 시도하고 있습니다. 나는 왜 그것이 작동하지 않을지를 알 수 없다. 내가 실행하려고하면ssh X11 포워딩이 작동하지 않습니다

나는이 메시지의 xterm :

X11 connection rejected because of wrong authentication. 
xterm Xt error: Can't open display: localhost:10.0 

이가 관련 또는하지 않을 경우 나도 몰라,하지만 난 로그인 할 때, 나는이 메시지를 얻을 :

/usr/bin/xauth: timeout in locking authority file /home/sphillips/.Xauthority 

문제는 내 랩톱의 로컬 사용자가 skp이고이 서버의 사용자 이름이 sphillips인지 궁금합니다. 동일한 Skp 로그인을 사용하는 다른 컴퓨터에서 X11 포워딩을 사용할 수있게되었습니다.

또한 X11 및 포티를 사용하는 Windows 컴퓨터에서 X11 포트 포워딩이 동일한 서버로 작동합니다. 수동으로 DISPLAY 변수를 IP 주소로 설정하고 0.0을 표시해야하지만 작동합니다.

내 컴퓨터에서 xhost +를 실행하여 보안 문제를 우회하려고 시도했습니다. 여전히 작동하지 않았습니다.

$ sudo grep X11Forwarding /etc/ssh/sshd_config 
#X11Forwarding no 
X11Forwarding yes 
# X11Forwarding no 

뿐만 아니라 내 컴퓨터에

: 서버에서

, 나는 구성 확인

$ sudo grep X11Forwarding /etc/ssh/sshd_config 
[sudo] password for skp: 
#X11Forwarding no 
X11Forwarding yes 
# X11Forwarding no 

내 서버는 레드햇 엔터프라이즈 리눅스 6입니다 내 노트북 ​​

페도라 15입니다

누군가 내 노트북에서 작동하도록 SSH X11 포워딩을 시도하기 위해 어떤 생각을 주어도 될까요?

+0

나는 이것을 위해 tumbleweed 배지를 얻었다! 그게 나쁜 일입니까, 아니면 좋은 일입니까? 나는 누군가가 내가 시도 할 수있는 것에 대해 생각을 해보기를 바란다. – digitaleagle

답변

2

데비안 OpenVZ 컨테이너에서 같은 문제가 발생했으며 "localhost"가 127.0.0.1이 아닌 LAN/IP의 영향을받은/etc/hosts 파일에서 문제가 발생한 것으로 보입니다.

는 전에 :

192.168.0.15 dagi dagi.domain.net localhost localhost.localdomain 

후 : 그 후

192.168.0.15 dagi dagi.domain.net 
127.0.0.1  localhost localhost.localdomain 

, 모두 ssh -Xssh -Y도 SSHD를 다시 시작하지 않고 마치 마법처럼 일했다.

+0

감사합니다 치 - 좋은 팁입니다. 나는 그 문제가있다. 내 노트북의 내/etc/hosts가 호스트를 127.0.0.1로 가리 킵니다. 그러나 나는 그것을 바꿨고 여전히 다른 것을 만들지 않았다. 실제로 3 개의 IP 주소를 모두 시도했습니다. 하드 IP, 무선 IP 및 VPN (tun0-00)을 시도했습니다. 나는 여전히 같은 결과를 얻는다. – digitaleagle

+0

Thnks Chi - 방금 시간이 많이 걸렸습니다. – jhilmer

12

드디어 답을 찾았습니다! 문제는 SELinux였습니다. 나는 SELinux를 끄고 아무런 문제없이 작동했다.

모든 세부 사항에 관심이 있으시면 my blog에서 읽을 수 있지만 여기에 관련 사실을 자세히 설명해 드리겠습니다 ...

dmesg | tail 

이 같은 메시지의 수를 발견 : 당신이 함께 SELinux에의 상태를 확인할 수 있습니다

type=1400 audit(1332520527.110:51337): avc: denied { read } for pid=25240 comm="sshd" name="authorized_keys" dev=dm-5 ino=167 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file 

을 원격 시스템에

, 내가 로깅 메시지를 볼 수 dmesg 명령을 사용 명령 :

$ sestatus 
SELinux status: enabled 
SELinuxfs mount: /selinux 
Current mode: permissive 
Mode from config file: permissive 
Policy version: 24 
Policy from config file: targeted 

다음 명령을 사용하여 허용 모드로 설정할 수 있습니다.

setenforce 0 

SELinux에 대한 자세한 내용은 Red Hat's guide helpful입니다. 또한 다른 SSH 문제의 경우 로깅을 얻는 데 도움이되는 David's blog을 찾았습니다.

그 후, 제 X11 포워딩은 문제없이 작동하기 시작했습니다.

SELinux는 여러 가지 다른 것들을 예방하고있었습니다. 핵심 인증 작업을 수행하는 데 필요한 파일을 작성할 수 없습니다. 또한 ssh-keygen이 홈 디렉토리에 키를 만들지 못하도록 차단했습니다.

0
sudo grep X11Forwarding /etc/ssh/sshd_config 

X11Forwarding yes 
#sestatus 
SELinux status: enabled 
SELinuxfs mount: /selinux 
Current mode: permissive 
Mode from config file: permissive 
Policy version: 24 
Policy from config file: targeted 
#You can turn it to permissive mode with this command: 
#setenforce 0 
1

위의 @Chl 대답 외에도 ~/.Xauthority 파일이 손상되었습니다.

어떤 이유인지 그것은 내 홈 디렉토리 아래에서도 루트가 소유하고있었습니다. 그래서 나는 sudo -s에 있었고, 그것을 삭제했다. 그 X 포워딩 우분투 14.04에서, 나를 위해 일한 후

그런 다음 touch ~/.Xauthority

로 재현.

+0

마찬가지로, 나는'~/.Xauthority' 파일을 가지고 있지 않으며, 그것을 생성 (비어 있음)하면 문제가 해결되었습니다. –

2

나는 이것도 부딪 혔다. 하지만 제 경우에는 며칠 전에 IPv6 지원을 제거했기 때문입니다. 나는 this thread에 부딪쳐 sshd가 IPv4만을 사용하는지 확인하는 방법을 설명했다.

내가 그것을 어떻게했는지,이 부가 기능입니다 : (죽일 구성을 다시로드 (우분투의/etc/SSH/sshd_config에에) 당신의 ssh_config를 파일에

AddressFamily inet 

및 SSHD을 -SIGHUP PID 외 sshd).

+0

또한 퍼티로 ssh를 실행하려고 할 때 Google Compute Engine의 최신 Ubuntu 부팅 디스크 이미지에이 줄이 필요합니다! 나는 이것을 계산하는 데 하나의 평일을 보냈다. http://www.straightrunning.com/XmingNotes/trouble.php –

+0

'ssh'로 이것을 테스트 할 수 있습니다. cli args'-o "AddressFamily inet"' – danodonovan