我想在我的配置文件中设置一个与此命令具有相同结果的别名:
ssh -N devdb -L 1234:127.0.0.1:1234
Run Code Online (Sandbox Code Playgroud)
我的 .ssh/config 条目devdb:
Host devdb
User someuser
HostName the_hostname
LocalForward 1234 127.0.0.1:1234
Run Code Online (Sandbox Code Playgroud)
我在上面的配置中放了什么才能不启动 shell?
thr*_*rig 31
所以在ssh.cOpenSSH 7.6p1 中我们发现
case 'N':
no_shell_flag = 1;
options.request_tty = REQUEST_TTY_NO;
Run Code Online (Sandbox Code Playgroud)
-N两件事也是如此:
no_shell_flag只出现在ssh.c且仅用于启用-W或-N选项,否则它会显示在相关的一些逻辑块ControlPersist,涉及背景叉完整性检查。我没有看到选项可以直接设置它的方式。readconf.c所述request_tty对应于RequestTTY所详述的选择ssh_config(5)。这留下了(除了猴子修补 OpenSSH 和重新编译,或要求ssh_config切换的选项no_shell_flag......)类似于:
Host devdb
User someuser
HostName the_hostname
LocalForward 1234 127.0.0.1:1234
RequestTTY no
RemoteCommand cat
Run Code Online (Sandbox Code Playgroud)
从技术上讲,它确实启动了一个 shell,但该 shell 应该立即用cat程序替换自己,然后该程序应该阻止允许同时使用端口转发。cat是可移植的,但会消耗输入(如果有)或可能失败(如果标准输入关闭)。另一种选择是运行一些只阻止.
| 归档时间: |
|
| 查看次数: |
5800 次 |
| 最近记录: |