에서 .ssh/config
다음과 같은 명령 을 지정하는 방법이 있습니까?
ssh -t remote-host "screen -dR screen_name"
그래서 원격 screen
세션에 쉽게 액세스 할 수 ssh remote-host
있습니까?
지금은 사용자 정의 스크립트를 사용 하여이 문제를 해결했습니다.
$ cat ~/bin/sssh
#!/bin/sh
/usr/bin/ssh -t $1 "screen -dR ab"
~/bin
에 먼저 $PATH
머 무르지 만 융통성이없고 추악합니다.
또한 사용자 정의 스크립트에 대한 호스트 자동 완성을 구현하는 방법을 찾고 싶습니다.
답변
-t
옵션 과 마찬가지로 tty를 할당하려면 RequestTTY force
ssh 구성 파일 (일반적으로 ~/.ssh/config
)에 항목으로 입력하십시오 . 연결 한 후에 항상 서버에서 명령을 실행하려면 연결시 실행할 명령이있는 RemoteCommand COMMAND
항목을 입력 COMMAND
하십시오. 다른 옵션에 대해서는을 확인하십시오 man ssh_config
.
Host remote-host
Hostname my.server.com
User imauser
IdentityFile /path/to/identity_file
RequestTTY force
RemoteCommand screen -dR screen_name
답변
힘을 써라, 루크!
RequestTTY force
당신의 ~/.ssh/config
원하는 호스트.
답변
이것이 가장 유연한 방법이라고 주장합니다. 스크립트를 사용하면 입력을 기반으로 매개 변수를 설정하고 조건을 추가하며 필요에 따라 명령을 변경할 수 있습니다.
에서 명령을 “강제”하는 방법이 있습니다 authorized_keys
. 그러나 명령 줄을 제외하고 tty 할당을 강제하거나 로컬 서버 구성 파일에서 원격 서버의 명령을 강제하는 방법을 모르겠습니다.
내 자신은 구성 파일을 스캔하고 다양한 도메인을 가진 DNS를 확인하고 터미널 에뮬레이터의 제목 문자열을 설정하는 스크립트를 가지고 있습니다. 로컬 시스템의 화면에서 호출합니다 ( Ctrl-a g).
답변
참고 : OpenSSH 7.6RemoteCommand
작업을 시작합니다 . 이전 버전 (즉, 현재 데비안 9.9)에서 ssh 클라이언트는 (적어도로 ) 제대로 작동하지 않습니다 . git pull