데스크탑의 단일 ssh 명령으로 원격 서버에서 스크린 세션을 시작할 수 있기를 원합니다. 그러나 화면에는 ssh를 통해 명령을 실행할 때 사용할 수없는 터미널이 필요한 것 같습니다.
그래서 명백한
ssh root@my.machine screen "tail -f /var/log/messages"
(예를 들어) 작동하지 않으며
Must be connected to a terminal.
ssh가 화면에서 명령을 실행하여 나중에 로그인하여 수동으로 시작한 화면 세션에 연결할 수 있도록하고 싶습니다.
답변
ssh에 -t 옵션을 사용해보십시오
ssh -t root@my.machine screen "tail -f /var/log/messages"
남자 ssh에서
-t 의사 -tty 할당을 강제합니다. arbi-를 실행하는 데 사용할 수 있습니다 원격 컴퓨터의 화면 기반 프로그램을 트래 리 할 수 있습니다. 메뉴 서비스를 구현할 때 매우 유용합니다. 다중 -t ssh에 로컬 tty가없는 경우에도 옵션은 tty 할당을 강제합니다.
답변
당신이 사용할 수있는:
ssh root@host screen -m -d "tail -f /var/log/messages"
명령이 실행되면서 분리 된 화면이 시작됩니다.
-m causes screen to ignore the $STY environment variable. With
"screen -m" creation of a new session is enforced, regardless
whether screen is called from within another screen session or
not. This flag has a special meaning in connection with the `-d'
option:
-d -m Start screen in "detached" mode. This creates a new session but
doesn't attach to it. This is useful for system startup
scripts.
답변
늦은 대답이지만 이것이 내가하는 일입니다.이 작업을 수행하는 별명을 t로 지정하십시오.
ssh $MYSERVER -a -x -t screen -xRR -A -e^Zz -U -O
이 이야기 ssh
에이전트와 X11 포워딩을 사용하지 않도록 설정하고, 지시 screen
, 실행중인 세션에 연결 필요한 경우 새로운 시작, 사용하는 ^Z
브레이크 아웃 명령으로, UTF-8을 사용하고 터미널에 대해 현명하게.
이 모든 것은 터미널을 열고 입력 할 수 t
있으며 $ MYSERVER에서 스크린 세션을 엽니 다. 그런 다음 다른 터미널을 열고 동일한 작업을 수행하면 동일한 세션에 다른 창이 나타납니다.
동일한 화면 세션에 여러 개의 터미널 창을두면 동시에 두 개의 화면 탭을 볼 수 있습니다.
답변
내 서버의 ~ / .bashrc 파일에 다음을 넣으면 서버에 처음 로그온 할 때 화면 세션이 시작되거나 이미 실행 중이면 해당 세션에 다시 연결됩니다.
나는 이것이 매우 편리하다고 생각한다.
if [ -n "$SSH_CONNECTION" ] && [ -z "$SCREEN_EXIST" ]; then
export SCREEN_EXIST=1
screen -DRi
fi