有什么方法可以在 中指定.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
保持第一$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
开始使用OpenSSH 7.6。在早期版本(即当前的 debian 9.9)中,ssh 客户端将停止正常工作(至少对于git pull
)。