다음과 같은 명령을 지정하는 방법이 있습니까 .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
1위를 유지 $PATH
하지만 융통성이 없고 보기 흉합니다.
또한 내 사용자 정의 스크립트에 대해 호스트 자동 완성을 구현하는 방법을 찾고 싶습니다.
답변1
-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
답변2
무력을 사용하세요, 루크!
RequestTTY force
원하는 호스트 에서 ~/.ssh/config
.
답변3
나는 이것이 가장 유연한 방법이라고 생각합니다. 스크립트를 사용하면 매개변수를 설정하고, 조건을 추가하고, 입력에 따라 명령을 변경할 수 있습니다.
명령을 "강제"하는 방법이 있습니다 authorized_keys
. 하지만 명령줄에서 tty 할당을 강제하거나 로컬 측 구성 파일에서 원격 서버의 명령 실행을 강제하는 것 외에는 다른 방법을 모르겠습니다.
구성 파일을 검색하고, 다양한 도메인에 대해 DNS를 확인하고, 터미널 에뮬레이터의 제목 문자열을 설정하는 스크립트가 있습니다. 내 로컬 시스템의 화면( )에서 호출합니다 Ctrl-a g.
답변4
참고: RemoteCommand
시작하기오픈SSH 7.6. 이전 버전(예: 현재 debian 9.9)에서는 ssh 클라이언트가 제대로 작동하지 않습니다(적어도 git pull
).