답변:
이러한 메시지는 SSH 옵션 만 사용하여 3 가지 방법 중 하나를 통해 제거 할 수 있습니다. 항상 메시지를 보낼 /dev/null
수도 있지만 이러한 방법은 메시지를 트래핑 및 덤프하지 않고 구성을 통해 메시지를 처리하려고합니다.
원격 서버 가 설치되지 .Xauthority
않았기 때문에 사용자 파일에 항목을 만들 수 없다고 불평하고 있습니다 xauth
. 따라서이 성가신 메시지를 없애기 위해 각 서버에 설치할 수 있습니다.
Fedora 19에서는 다음 xauth
과 같이 설치됩니다 :
$ sudo yum install xorg-x11-xauth
그런 다음 ssh
서버에 접속 을 시도 하면 사용자 .Xauthority
파일 에 항목이 작성되고 있다는 메시지가 표시 됩니다.
$ ssh root@server
/usr/bin/xauth: creating new authority file /root/.Xauthority
$
이후 로그인시 더 이상이 메시지가 표시되지 않습니다.
ssh
SSH 매개 변수 ForwardX11을 포함 시켜 클라이언트가 X11 전달을 사용하지 않도록 지시 할 수 있습니다 .
$ ssh -o ForwardX11=no root@server
-x
스위치를 사용 하여 동일한 작업을 수행 할 수 있습니다 .
$ ssh -x root@server
이것은 일시적으로이 메시지를 비활성화하지만 xauth
원격 서버에 설치할 수 없거나 설치하지 않으려는 경우에 좋은 옵션 입니다.
일반적으로 이것이 기본값이지만 그렇지 않은 경우 sshd
서버에서 X11Forwarding이 해제되도록 서버를 설정할 수 있습니다 /etc/ssh/sshd_config
.
X11Forwarding no
세 가지 방법 중 일반적으로 # 2를 사용합니다. X11Forwarding
대부분의 서버에서 자주 사용하고 싶지만 X11....
경고 를보고 싶지 않기 때문입니다.
이 메시지가 표시되지 않는 경우가 많습니다. 일반적으로 $HOME/.ssh/config
파일에 맨 위에 다음 항목이있을 때만 나타납니다 .
ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes
GatewayPorts yes
이 설정은 궁극적으로 X11..
메시지 생성을 주도하고 있으므로 ForwardX11 yes
기본적 으로 on으로 작동하려면 방법 # 2가 가장 적합 해 보이지만 ssh
클라이언트의 관점 에서 특정 연결에 대해 선택적으로 비활성화하십시오 .
일반적으로 ForwardX11 yes
항상 실행하는 것은 좋지 않습니다 . 따라서 가장 안전한 매너로 SSH 연결을 운영하려면 다음을 수행하는 것이 가장 좋습니다.
ForwardX11 yes
당신의 $HOME/.ssh/config
파일ssh -X user@server
X11Forwarding
서버에서 완전히 비활성화 하여 허용하지 않습니다.제 경우에는이 문자열을 추가 /etc/ssh/sshd_config
하여 문제 를 해결했습니다.
X11UseLocalhost no
locahost
X11 포워딩을 받아들이지 않았습니다 . 다른 두 개의 X11 포워딩은 여전히 작동합니다. 무엇이 바뀌었을 지 아십니까?
오늘 이것을 가로 질러 ssh 설정을 우연히 발견 할 때까지 잠시 동안 내 머리를 때렸다.
RHEL 7 (centOS, OEL 등)이고 ipv6이 비활성화 된 경우 다음이 필요합니다.
AddressFamily inet
/ etc / ssh / sshd_config에서 설정하십시오.
상세 모드 ( ssh -v user@host
) 에서 클라이언트를 실행 하면
debug1: Remote: No xauth program; cannot forward with spoofing.
그러나 xauth
실제로 서버에 설치되어 있다면 아마도 sshd 가 잘못된 위치 ( 일반적으로 / usr / X11R6 / bin / xauth ) 에서 xauth 실행 파일을 찾기 때문일 것입니다 . 하나를 설정하여 해결할 수 있습니다
XAuthLocation /usr/bin/xauth
에서 의 / etc / sshd를 / sshd_config를 (또는 무엇이든 서버로 구성되어 있습니다).
이미 여기에있는 모든 훌륭한 답변 외에도 ForwardX11
호스트별로 구성 할 수 있으므로 server
이와 같이 실패 ~/.ssh/config
하는 경우 다음 형식 의 파일에 항목을 추가 할 수 있습니다 .
Host server server.domain.dom
ForwardX11 no
전체 구성 세트에 대한 동맹국으로 이와 같은 항목을 사용할 수도 있습니다.
Host my.server
HostName server.domain.dom
User user
Port 1234
ForwardX11 no
SSH 및 SCP에 대해 자동 완성 서버 이름을 설정 한 경우 특히 유용합니다 .
나는 sshd-xauth
거의 10 년 된 버그 로 뛰어 들인 후에이 질문을 보았습니다. 두 번째 해결책은 첫 번째 우회 xauth
이고 두 번째 해결책은 버그를 해결하는 것입니다.
해결 방법 1-xauth 무시
원격 /etc/ssh/sshd_config
:
X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
리모컨 ~/.Xauthority
이 비어 있거나 존재하지 않습니다
로컬에서 :
Xephyr -ac -screen 1280x800 -br -reset :2 &
DISPLAY=:2 ssh -fR 6010:/tmp/.X11-unix/X2 user@remote "DISPLAY=:10 xeyes"
테스트에서 로컬은 Ubuntu 18.05를, 원격은 Debian Jesse를 실행했습니다.
또한 이 솔루션 을 다른 질문에 대한 답변으로 게시했습니다 .
해결 방법 2- sshd / xauth 버그 해결
이 솔루션은 위 의 @systempoet 솔루션 과 비슷하지만 그 자체로는 충분하지 않습니다.
/etc/ssh/sshd_config
원격 에서 수정 하는 것 외에도 :
AddressFamily inet
/etc/hosts
원격에서도 수정되었습니다.
::1 localhost ip6-localhost ip6-loopback
둘 중 하나라도 주석 처리 된 경우 오류 메시지
X11 forwarding request failed on channel 0
ssh -X ...
통화 후 나타납니다 . 또한 /var/log/auth.log
오류가 표시되었습니다.
sshd[...]: error: Failed to allocate internet-domain X11 display socket
버그를 수정하기위한 테스트 (수정 전) :
로컬 머신 :
$ Xephyr -ac -screen 1280x800 -br -reset -terminate :2 &
$ DISPLAY=:2 ssh -X user@remote
X11 forwarding request failed on channel 0