我正在尝试设置通过 AWS Session Manager 使用 ssh 命令连接的代理(由 ansible 使用)。截至目前,我可以使用 AWS CLI 命令连接到我的虚拟机,如下所示
aws ssm start-session --target i-XXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
考虑到这一点,我尝试在 ssh 配置中设置 ProxyCommand,这与 AWS 推荐的相同
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p' --region eu-west-2"
Run Code Online (Sandbox Code Playgroud)
现在它变得很奇怪,它显示为连接已打开,但它只是挂在那里,没有将输入重定向到虚拟机,也没有打印提示。
$ ssh i-XXXXXXXXXXXX -vvvvvvvvv
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /home/foo/.ssh/config
debug1: /home/foo/.ssh/config line 1: Applying options for i-*
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Executing …Run Code Online (Sandbox Code Playgroud)