원격 시스템에 tmux 세션 연결


31

로컬 컴퓨터에서 tmux를 사용하고 있으며 일반적으로 동시에 여러 세션이 있습니다.

내가 일반적으로하는 일은 로컬에서 작동하는 다른 창이있는 세션과 세션 당 하나의 호스트에 여러 개의 창을 연결하는 다른 세션입니다.

tmux를 매일 사용하는 경우 세션 / 창 트리는 다음과 같습니다.

(TMUX on my local machine)
 |
 +- session 1: local
 |  \_ window 1: local shell
 |  \_ window 2: local shell
 |  \_ ...
 |
 + session 2: somehost
 |  \_ window1: ssh user@somehost
 |  \_ window2: ssh user@somehost
 |  \_ ...
 |
 + session 3: someotherhost
    \_ window1: ssh user@someotherhost
    \_ window2: ssh user@someotherhost
    \_ ...

somehost & someotherhost에서 생성 된 tmux 세션에 연결하는 세션 2 및 세션 3을 일종의 원격 세션으로 만드는 방법이 있습니까?

위의 트리는 다음과 같습니다.

(TMUX on my local machine)
 |
 +- session 1: local
 |  \_ window 1: local shell
 |  \_ window 2: local shell
 |  \_ ...
 |
 + session 2 linked to an existing session on somehost
 |  \_ window1: shell on somehost
 |  \_ window2: shell on somehost
 |  \_ ...
 |
 + session 3 linked to an existing session on someotherhost
    \_ window1: shell on someotherhost
    \_ window2: shell on someotherhost
    \_ ...

이 주제를 찾았지만 이것이 내가 원하는 일인지 잘 모르겠습니다. 호스트간에 tmux 소켓을 공유 할 수 있습니까?

내가 찾고있는 것이 로컬 컴퓨터, somehost & someotherhost에서 동일한 tmux 구성을 요구하지만 문제가되지 않는다고 가정합니다.


이에 대한 해결 방법을 찾았습니까? 로컬처럼 관리 할 수있는 원격 세션을 갖는 것이 좋은 생각이라고 생각하지만 가장 높은 투표 응답은 실제로 귀하의 질문이 아닌 것 같습니다
mbigras

답변:


18

원격 호스트에 연결할 때 ssh에 명령을 전달할 수 있습니다. 원격 tmux 세션에 연결 하는 -t옵션을 포함하십시오 tmux attach-session.

ssh <remote host> -t tmux attach-session

ssh를 통해 tmux 세션연결하는 이 게시물에서는이 를 자세히 설명합니다.


18
이것은 단지 당신에게 중첩 된 세션을 제공하지 않습니까? OP 가하려는 것은 원격 세션이 로컬 세션과 함께 나타나서 하나의 tmux의 선택 창 / 선택 트리 내에서 탐색 할 수 있다고 생각합니다.
stsquad

원격 호스트에 둘 이상의 세션이 연결되어 있으면 다음을 사용할 수 있습니다. ssh <원격 호스트> -t tmux a -t <세션 이름>
user1757247

내가 겪은 문제와 단계별 수정을 위해 일부 수정 작업을 수행했습니다. 바라건대 동료 검토가 곧 완료 될 것입니다. 이것은 효과 ssh <remote host> -t /path/to/tmux a -t <my-session-name>-t
멀린

OP와 같은 질문이 있습니다. 이것은 내 질문에 대답하지 않습니다. 중첩 된 tmux 세션을 생성하여 해당 세션으로 보내려는 모든 tmux 명령을 두 번 이스케이프해야합니다. 로컬 세션처럼 원격 세션이 세션 목록에 표시되는 것을 원합니다.
전능 한

2

주된 문제가 ssh remotehost새 창을 열 때마다 입력해야하는 경우 default-command세션 옵션이 해결 방법 일 수 있습니다.

설정 한 세션에서 새 창을 열 때 지정한 명령이 자동으로 실행됩니다.

간단한 설정 .tmux.conf:

bind-key C-r new-session ssh remotehost \; set-option default-command "ssh remotehost"

이 키 바인딩 Ctrl-r은 새로 열린 모든 창이 먼저 ssh remotehost사용자를 대신하여 실행되는 새 세션을 만듭니다 .

세션을 만들 때 아래 설정으로 연결할 호스트를 선택할 수 있습니다.

bind-key C-r command-prompt "new-session -s %1 ssh %1 \; set-option default-command \"ssh %1\""

이것은 ssh각 창 생성이 아닌 각 세션 생성에서 수행 할 호스트를 요청 하고 해당 호스트 전용 세션을 시작합니다.

sshssh 구성에서 SSH 멀티플렉싱을 활성화하면 많은 시간이 소요됩니다 . .ssh/config예는 다음과 같습니다 :

Host remotehost
    ControlMaster auto
    ControlPath ~/.ssh/mux-%r@%h:%p
    ControlPersist 10

이 tmux 설정은 원격 호스트에서 tmux 세션을 생성하지 않습니다. ssh 연결이 끊어지면 영향을받는 tmux 창이 반환되지 않습니다.


1

socat과 같은 도구를 사용하여 tmux에서 사용하는 유닉스 도메인 소켓을 로컬 시스템으로 터널링 할 수 있습니다. 그러나 실제로 터널 (ssh)을 다른 (socat)으로 교체하기 때문에 실제로 더 좋고 안전하지 않습니다.


어쩌면 터널링 socat을 통해 ssh? 🙂
59 분에 Omnifarious

이 시점에서 tmate원격 TMUX 처리를위한 가장 좋은 도구가 될 수있다
untore

0

원격 쉘에 대해 말하면 명령을 실행할 수 있습니다. 즉, 직접 액세스 할 수 있습니다. 이 경우 ssh각 원격 창에 간단히 연결을 사용할 수 있습니다 .

다음과 같이 말할 수 있습니다.

"하지만 원격 서버마다 여러 개의 창을 가질 수있는 방법은 없습니다!"

그리고 ssh 제한으로 인해 사실입니다. 그러나 각 또는 원격 서버에서 tmux 세션을 시작할 수 있습니다. 참고 : 이 경우 Ctrl+b충돌을 방지하기 위해 로컬 컴퓨터에서 기본값을 리 바인드해야합니다 .

또한 사용 tmuxinator하는 것이 좋습니다. 매일 매일 tmux 세션을 후퇴하는 경우 매우 유용한 도구입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.