-Y 다음에 su-<다른 사용자>를 ssh하고 X 응용 프로그램을 로컬 컴퓨터로 전달하는 방법


13

원격으로 실행되는 Linux 응용 프로그램을 '가져 오기'(즉, 로컬로 그리기)가 쉽습니다 ssh -Y. 원격 시스템에 응용 프로그램을 실행하고 해당 응용 프로그램을 실행하면 해당 응용 프로그램이 반드시 로컬 데스크톱에 충분히 나타납니다.

그러나 원격 컴퓨터에서 ssh'ed 상태에서 su다른 사용자에게 전달하면 X 응용 프로그램을 로컬 컴퓨터로 전달할 수 없습니다. 라고 말합니다 wrong authentication.

이 사례를 해결하는 방법을 잘 모르겠습니다. 은 echo $DISPLAY(초기 설정 여전히 올바른 ssh -Y로그온)하지만, 세션 쿠키는 아마 단지 ssh를 로그온 초기 사용자에 대해 설정됩니다.

이 어려움을 극복하고 다른 사용자로부터 실행되는 다른 X 응용 프로그램을 어떻게 전달할 수 있습니까?

내가 직접 ssh하지 않는 이유는 ssh를 통해 해당 사용자가 액세스 할 수 있기를 원하지 않기 때문입니다 ( "virtualbox"사용자입니다.이 서버에 ssh를 시도하는 봇에게는 쉬운 대상입니다).

답변:


12

X11 전달이 사용 가능한 ssh를 통해 제거 시스템에 연결하면 서버의 ssh .Xauthority가 사용자의 홈 디렉토리에 파일을 작성합니다 . ssh는 TCP 소켓에서 X11을 수신하므로 누구나 연결할 수 있습니다. 누구나 연결할 수 있으므로 다른 사람이 디스플레이를 사용하지 못하도록하는 방법이 필요합니다. 이것은 해당 .Xauthority파일 로 수행 됩니다. 이 파일에는 "쿠키"가 포함되어 있으며 X11 서버에 제공되어 클라이언트의 연결이 허용되는지 확인합니다.

모든 세부 사항을 건너 뛰고 해당 .Xauthority파일을 대상 사용자의 홈 디렉토리에 복사 하고 소유권을 부여하면 연결할 수 있어야합니다.


이 작업을 수행 한 후에도 사용자를 전환 한 후 DISPLAY 변수를 올바르게 설정해야합니다. 환경을 필터링 할 수있는 'sudo'를 사용할 때 문제가 될 수 있습니다.
Chris Arguin

8
  1. ssh -Y 원격 컴퓨터에 자신을
  2. 일단 거기에 입력하십시오 xauth list. MAGIC-COOKIE 항목 목록이 나타납니다. 귀하의 로그인 세션은 목록에서 가장 아래에있을 것입니다. (호스트 이름과 UNIX 번호 코드를보고이를 쉘 호스트 이름과 현재 localhost : ## DISPLAY env 변수와 비교하여 확인하십시오.)
  3. 사용자를 전환하십시오.
  4. xauth add위에서 + 전체 MAGIC-COOKIE 줄을 입력 하십시오.
  5. 그래픽이 나타납니다. 빨리 테스트하십시오 xlogo.

2
xauth add에 "+"가 없습니다. 예를 들어 xauth add ubuntu / unix : 10 MIT-MAGIC-COOKIE-1 6b49de7c34409d5ac69beab31d12ec94
Tuntable

1
USER="otherusername" && MAGIC_COOKIE=`xauth list | tail -n1` && su -c "xauth add $MAGIC_COOKIE" $USER && su - $USER
7yl4r

3

나는 랜디의 대답을 좋아하지만 그것은 나에게 효과적이지 않았다.

내가해야 할 일은 다음과 같습니다.

  1. ssh -Y as user1
  2. xauth list | grep `uname -n`
  3. user2로 전환
  4. unset XAUTHORITY
  5. xauth generate :0 .
  6. xauth add :0 . <KEY-FROM-STEP-2>

5 단계와 6 단계에서 두 기간을 유의하십시오.

Randy의 대답을 따르면, user2의 XAUTHORITY변수는 여전히 user1의 .Xauthority파일을 가리 킵니다 . 그리고 그의 + 키 구문은 작동하지 않았습니다.


2

이것은 대답이 아니므로 찾은 경우 분명히 바람직합니다.

그렇지 않은 경우 이것이 수수께끼의 근본 원인입니다.

내가 직접 ssh하지 않는 이유는 ssh를 통해 해당 사용자가 액세스 할 수 있기를 원하지 않기 때문입니다 ( "virtualbox"사용자입니다.이 서버에 ssh를 시도하는 봇에게는 쉬운 대상입니다).

그것은 훌륭한 추론이 아닙니다. "봇이 목표로하는 것"WRT가 잘 구성된 sshd는 크게 관련이 없습니다. 그들은 어디에서나 포트 22 주위에서 윙윙 거리는가? 분명히 그렇습니다. 이것이 실제로 성공할 수있는 기회를 의미합니까?

임의의 익명 봇했다하는 사람에 대한 이야기를 위해 주변에 인터넷 검색을 시도 성공적으로 SSHD에 침입합니다. 나는 어딘가에 누군가가 일어 났을 것이라고 확신하지만 (물론 당신은 알지 못할 수도 있음), 그런 보고서를 찾을 수는 없습니다. 사용 된 구성이 무엇인지 읽는 것이 흥미로울 것입니다.

SSH를 올바르게 사용하면 매우 안전합니다. 그렇지 않다면 인터넷 상거래는 불가능했을 것입니다. 그렇다면 왜이 로봇들이 귀찮게합니까? "적절하게 사용됨"은 주로 필수 공개 / 개인 키 쌍을 의미합니다. 그렇게하고 개인 키가 안전하다고 확신한다면 sshd에 대해 확신하십시오.

나는 모든 "침입 시도가"전혀 일어날 이유는 많은 사용자 신체가 있다고 생각 하지 않습니다 ) 혼자 매뉴얼 페이지 및 사용 암호 보호를 읽지 않는다; U & L에 대한 질문 물어 같은 일을 ATM 카드를 기계에 어딘가에두고 "가라!"라는 표시가있는 것과 같습니다.

그러나 개인 키를 ATM 카드와 같이 물리적으로 안전하게 보호되는 것으로 생각하면 대상이 훨씬 더 미묘 해집니다. 봇이 할 수있는 모든 것은 그렇습니다. 2048 비트 키를 무차별 대입하려면 수천 년의 기계가 수천 년이 걸렸습니다.

침입 시도 보고서를 읽는 데 어려움이있는 경우 포트를 변경하십시오. 나는 여기 사람들이 이것을 "불분명에 의한 보안"으로 poo-poo로 보았지만, 포트 22에서 올바르게 보안 된 sshd는 포트 57에서 덜 안전하지는 않지만 무작위로 귀찮게하지는 않을 것입니다. 물론, 모든 무인 항공기 적들이 전체 IP를 포트 스캔 할 수는 있지만 무엇을 알고 있습니까? 그들은하지 않습니다. 나는 그들이 찾고있는 것은 심지어 보지 못하고 /etc/ssh/sshd_config스스로 교육을 덜 받고 시스템을 조정 한 시스템을 운영하는 사람이기 때문이라고 생각 합니다.


나는 당신이 말하는 모든 것에 동의합니다. 그러나 나는 항상 정신적으로 불안합니다 (화상을당한 후 많은 상황에서 그들이 가르치는 것이 아닙니까?). 내가 로그온하려는 PC를 정직하게 말하는 것은 방화벽입니다 (외부에서 액세스 할 수 없음). ssh는 높은 포트에 있고 암호가 어렵지만 여전히 "virtualbox"가 공개 이름이라고 생각할 수는 없습니다. 누군가 어딘가에 봇 코드에 통합하도록 선택할 수 있습니다. SSH 키는 암호 보호와 함께 사용하면 특히 훌륭한 솔루션입니다. 그러나 USB를 사용하려면 가벼운 리눅스 배포판을 USB로 가져와야합니다.
nass September
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.