의사 -tty 할당 및 명령 실행을 지정하는 .ssh / config 방법


13

에서 .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머 무르지 만 융통성이없고 추악합니다.

또한 사용자 정의 스크립트에 대한 호스트 자동 완성을 구현하는 방법을 찾고 싶습니다.


로 교체 $1합니다 $@. 그런 다음 호스트 이름뿐만 아니라 더 많은 옵션을 추가 할 수 있습니다. 완료하려면 . /usr/share/bash-completion/completions/ssh다음을 실행하십시오 .complete -F _ssh sssh
Alex Stragies

답변:


17

-t옵션 과 마찬가지로 tty를 할당하려면 RequestTTY forcessh 구성 파일 (일반적으로 ~/.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


1

이것이 가장 유연한 방법이라고 주장합니다. 스크립트를 사용하면 입력을 기반으로 매개 변수를 설정하고 조건을 추가하며 필요에 따라 명령을 변경할 수 있습니다.

에서 명령을 "강제"하는 방법이 있습니다 authorized_keys. 그러나 명령 줄을 제외하고 tty 할당을 강제하거나 로컬 서버 구성 파일에서 원격 서버의 명령을 강제하는 방법을 모르겠습니다.

내 자신은 구성 파일을 스캔하고 다양한 도메인을 가진 DNS를 확인하고 터미널 에뮬레이터의 제목 문자열을 설정하는 스크립트를 가지고 있습니다. 로컬 시스템의 화면에서 호출합니다 ( Ctrl-a g).


0

참고 : OpenSSH 7.6RemoteCommand 작업을 시작합니다 . 이전 버전 (즉, 현재 데비안 9.9)에서 ssh 클라이언트는 (적어도로 ) 제대로 작동하지 않습니다 . git pull

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