.ssh/config는 pseudo-tty 할당 및 명령 실행이 수행되는 방법을 지정합니다.

.ssh/config는 pseudo-tty 할당 및 명령 실행이 수행되는 방법을 지정합니다.

다음과 같은 명령을 지정하는 방법이 있습니까 .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"

~/bin1위를 유지 $PATH하지만 융통성이 없고 보기 흉합니다.

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

답변1

-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

답변2

무력을 사용하세요, 루크!

RequestTTY force원하는 호스트 에서 ~/.ssh/config.

답변3

나는 이것이 가장 유연한 방법이라고 생각합니다. 스크립트를 사용하면 매개변수를 설정하고, 조건을 추가하고, 입력에 따라 명령을 변경할 수 있습니다.

명령을 "강제"하는 방법이 있습니다 authorized_keys. 하지만 명령줄에서 tty 할당을 강제하거나 로컬 측 구성 파일에서 원격 서버의 명령 실행을 강제하는 것 외에는 다른 방법을 모르겠습니다.

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

답변4

참고: RemoteCommand시작하기오픈SSH 7.6. 이전 버전(예: 현재 debian 9.9)에서는 ssh 클라이언트가 제대로 작동하지 않습니다(적어도 git pull).

관련 정보