SSH网关连接与可扩展认证技术详解
1. 环境变量与远程shell使用
在某些情况下,当变量未设置时, ${foo:-bar} 会计算为 “bar”。需要注意的是,这里使用的 shell 是远程账户所属的 shell。为了确保健壮性,最好明确指定使用特定的 shell,示例命令如下:
command="/bin/bash -c 'ssh -l skipper S ${SSH_ORIGINAL_COMMAND:-}'" ...key...
此技术同时巧妙地解决了 “缺少终端” 的问题。
2. 通过网关使用 SCP
2.1 SCP 原理
命令 $ scp ... S:file ... 实际上会在子进程中运行 ssh 来连接到 S 并调用远程 scp 服务器。当 ssh 从客户端 C 到服务器 S 正常工作后,通常期望 scp 也能在这两台机器之间正常工作,但实际存在认证问题。由于第一次 ssh 会话中没有伪终端,无法为第二个 ssh 程序提供密码或密码短语(ssh 需要终端进行用户输入),因此需要一种无需用户输入的认证方式,如基于主机的认证或带有代理转发的公钥认证。
2.2 公钥认证问题及解决方法
部分版本的 scp 在运行 ssh 时会使用 -a 开关来禁用代理转发。若要重新启用代理转发,可按以下步骤操作:
1. 常规方法失败 :在客户端 C 的配置文件
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



