SSH-~ / .ssh / config 파일에“-t 명령”을 포함시키는 방법 경우 첫 번째 작업은

~/.ssh/config파일을 사용하여 쉽게 입력 ssh myserver할 수 있으며 올바른 사용자 이름, 포트, 호스트 이름, ID 파일 등을 제공합니다.

그러나 많은 서버의 경우 첫 번째 작업은 su -루트로 로그인하기 위해 입력 하는 것 입니다. 명령 줄에서 하나의 명령 으로이 작업을 모두 수행 할 수 있습니다 ssh myserver -t su -. 내 ~/.ssh/config파일에 추가 할 수있는 것이 있습니까? 나는 할 수 있기를 원 ssh myserver-root하고 그것은 같은 일을 할 ssh myserver -t su -것인가?

에 대해 알고 있습니다. PermitRootLogin이 서버는 사용하지 않으며이 서버를 사용하기를 꺼려합니다. 클라이언트 쪽에서 ssh를 사용 하여이 작업을 수행 할 수있는 방법이 있는지 훨씬 알고 싶습니다.



답변

나는 다른 방향에서 이것에 접근 할 것이라고 생각한다-원격 서버에서 ~ / .ssh / authorized_keys 파일의 공개 키 항목에서 ‘command =’를 사용하여 “su-“명령을 실행하십시오.

그런 다음 ~ / .ssh / config 파일 (IdentityFile 옵션)에서 개인 키를 사용 / 참조하십시오 (이 방법으로 작업하려는 모든 호스트 / 별칭 ( “myserver-root”)).

certified_keys (5)에서 사용 가능한 옵션은 sshd (8)에 설명되어 있습니다.


답변

루크의 힘을 사용하십시오!

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

btw. 이 또한 여기에 설명 /unix/27713/ssh-config-way-to-spectify-pseudo-tty-allocation-and-command-execution-like-sc/294468#294468


답변

rssh와 같이 경로의 디렉토리 (또는 그 별명)에 스크립트를 추가하지 않으시겠습니까?

#!/bin/bash
ssh $1 -t 'su -'

그런 다음 :

rssh myServer


답변

OpenSSH 소스에서 pseudo-tty 할당에 대한 구성 옵션을 찾지 못했습니다.

그러나 PermitRootLogin에 관한 팁을 줄 수 있습니다.

PermitRootLogin without-password

그리고 ssh-key로 루트 로그인 만 허용하십시오.


답변

서버 측의 ~ / .bashrc에 이와 같은 것을 추가하는 것은 어떻습니까?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi


답변

가장 좋은 대답은 아마도 rkthkrjrg 의 조합 일 것입니다 . PermitRootLogin키를 요구하는 데 사용 하고 command키워드 가있는 키만 root의 authorized_keys 파일에 넣으십시오 .


답변