brn*_*ngp 13 ssh remote zsh session
我想在不键入以下命令的情况下启动远程会话
ssh user@remoteserverip -t zsh
Run Code Online (Sandbox Code Playgroud)
我知道我可以更改主机名~/.ssh/config以简单地使用以下内容:
ssh serveralias -t zsh
Run Code Online (Sandbox Code Playgroud)
但我想删除-t zsh参数。
有没有办法在不编写函数的情况下实现这一目标?
小智 12
对于多年后到达这里的任何人,自 2017 年以来,可以将所有内容都放在配置文件中:
Host host_1
HostName 1.2.3.4
User root
Port 22
RequestTTY yes
RemoteCommand zsh
Run Code Online (Sandbox Code Playgroud)
我认为这是不可能的~/.ssh/config。该-t可以通过添加覆盖RequestTTY yes,但它似乎没有可以指定远程命令~/.ssh/config。
但是,使用zsh,您可以添加:
alias -g 'serveralias=serveralias -t zsh'
Run Code Online (Sandbox Code Playgroud)
到您的~/.zshrc.
或者做一个像这样的函数:
zssh() ssh "$@" -t zsh
Run Code Online (Sandbox Code Playgroud)
我同意@Stephane 的观点,没有办法使用~/.ssh/config file. 另一种方法是使用~/.ssh/authorized_keys远程服务器上的文件。如果添加这样的一行:
command="exec zsh" ssh-dss ..... rest of key ....
Run Code Online (Sandbox Code Playgroud)
然后你可以像往常一样 ssh,你会在远程服务器上得到一个 zsh。
在服务器上,ssh 到远程。
$ ssh saml@greeneggs
Run Code Online (Sandbox Code Playgroud)
在远程服务器上,确认我们在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
Run Code Online (Sandbox Code Playgroud)
您可以使用此文件做更复杂的事情,请参阅此问答,标题为:ssh,启动特定的 shell,并在远程计算机上运行命令?.