A B*_*A B 20 ssh gnu-screen configuration
有什么方法可以指定,在.ssh/config
,一个命令,如:
ssh -t remote-host "screen -dR screen_name"
Run Code Online (Sandbox Code Playgroud)
所以我可以轻松访问远程screen
会话ssh remote-host
?
现在我使用自定义脚本解决了这个问题:
$ cat ~/bin/sssh
#!/bin/sh
/usr/bin/ssh -t $1 "screen -dR ab"
Run Code Online (Sandbox Code Playgroud)
~/bin
停留在第一个$PATH
,但它不灵活和丑陋。
此外,我想找到为我的自定义脚本实现主机自动完成的方法。
Bri*_*roe 22
要像使用-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
Run Code Online (Sandbox Code Playgroud)
我认为这是最灵活的方式。脚本允许您根据输入设置参数、添加条件、更改命令。
有一些方法可以“强制”命令authorized_keys
。但我不知道除了从命令行强制 tty 分配或从本地端配置文件强制在远程服务器上执行命令的方法。
我自己有一个脚本,可以扫描配置文件,检查各个域的 DNS 并设置终端模拟器的标题字符串。我从本地系统的屏幕上调用它 ( Ctrl-a g)。