다음 명령을 입력하지 않고 원격 세션을 시작하고 싶습니다
ssh user@remoteserverip -t zsh
~/.ssh/config
다음과 같이 간단히 사용하기 위해 호스트 이름을 변경할 수 있다는 것을 알고 있습니다 .
ssh serveralias -t zsh
하지만 해당 매개변수를 제거하고 싶습니다 -t zsh
.
함수를 작성하지 않고 이를 달성할 수 있는 방법이 있습니까?
답변1
몇 년 후 여기에 도착하는 사람은 2017년부터 모든 것을 구성 파일에 넣을 수 있습니다.
Host host_1
HostName 1.2.3.4
User root
Port 22
RequestTTY yes
RemoteCommand zsh
답변2
나는 이것이 불가능하다고 생각한다 ~/.ssh/config
. 를 -t
추가하면 무시할 수 있지만 RequestTTY yes
에서는 원격 명령을 지정할 수 없는 것 같습니다 ~/.ssh/config
.
그러나 를 사용하면 다음을 zsh
추가할 수 있습니다.
alias -g 'serveralias=serveralias -t zsh'
당신에게 ~/.zshrc
.
또는 비슷한 기능을 만듭니다.
zssh() ssh "$@" -t zsh
답변3
@Stephane에 동의합니다. 를 사용할 방법이 없습니다 . 또 다른 방법은 원격 서버의 파일을 ~/.ssh/config file
사용하는 것입니다 . ~/.ssh/authorized_keys
다음과 같은 줄을 추가하면:
command="exec zsh" ssh-dss ..... rest of key ....
그런 다음 정상적으로 ssh를 수행하면 원격 서버에서 zsh를 얻을 수 있습니다.
예
서버에서 원격으로 SSH를 실행합니다.
$ ssh saml@greeneggs
원격 서버에서 현재 위치를 확인하세요 zsh
.
[saml@greeneggs]~% ps -eaf|grep $$
saml 1974 1973 1 10:34 pts/3 00:00:00 zsh
saml 2023 1974 0 10:34 pts/3 00:00:00 ps -eaf
saml 2024 1974 0 10:34 pts/3 00:00:00 grep --color=auto 1974
이 파일로 더 복잡한 작업을 수행할 수 있습니다. 다음 Q&A를 참조하세요.ssh, 특정 쉘을 시작하고 원격 시스템에서 명령을 실행하시겠습니까?.
답변4
시스템 쉘 설정을 변경하는 것이 좋습니다.
- 정상적으로 서버에 접속합니다.
ssh serveralias
chsh
변경 시스템 쉘 실행- 입력이
/bin/zsh
zsh로 설정되었습니다. - 재접속 후
ssh serveralias
표시됩니다.%
chsh [username]
다시 연결하지 않고도 다른 사용자의 설정을 변경하는 데 사용할 수 있습니다.