我目前在家工作,需要连接到生产服务器。工作中的安全策略不允许 VPN 客户端连接到生产实例。因此,我想我可以通过开发服务器(我可以访问)配置代理转发,因为这是允许的。
为此,我首先为开发服务器启用了代理转发:
- 我添加
ForwardAgent yes
到~/.ssh/config
我的计算机上的开发服务器条目 - 我跑去
eval 'ssh-agent'
启动ssh代理 - 我使用将我的 ssh 密钥添加到代理
ssh-add ~/.ssh/id_rsa
- 我使用连接到开发服务器
ssh -A <devserver>
- 在开发服务器上,我尝试使用连接到生产服务器
ssh -T me@<prodserver>
在此之后,我能够在生产服务器上运行命令。但是,我从来没有看到实际的 bash 提示符。
我可以做些什么来确保出现提示吗?
在最后一步中,
ssh
不带-T
选项运行:使用该
-T
选项实际上会禁用分配 TTY,从而使您无法获得 shell。您没有收到提示,因为使用该
-T
选项告诉 ssh 禁用终端模式(tty 分配)。tty 的存在是所有程序如何确定它们是交互运行(即连接到终端/键盘)还是从文件或管道提供命令的方式。在后一种情况下,即“批处理”模式下,shell 禁用所有提示是正常的;诸如“ls”之类的工具失去了其精美的格式和彩色输出;等等。