Depois de ler o link do comentário do patrix, eu posso dizer que ainda é possível, se o ssh não tentar executar o shell. Um recurso recente do openssh 7.3 é chamado ProxyJump
(e é apenas um built-in e otimizado (usando tubos) atalho para um pouco mais de ProxyCommand
). Esse recurso funciona apenas no nível do túnel e nunca executa o shell no host intermediário.
Portanto, se em B o login da conta do usuário estiver desabilitado por um nologin
shell, mas a autenticação ainda estiver funcionando, e não houver configuração ssh impedindo o encaminhamento (por exemplo: AllowTcpForwarding
não está definido apenas para remote
ou no
, mas pelo menos em local
ou yes
), o comando de trabalho é simplesmente:
ssh -J B C
Em versões ssh antigas e sem configuração, você poderia fazer o mesmo com algo como:
ssh -f -N -L 2222:C:22 B
ssh -p 2222 localhost
O ponto chave é este:
-N Do not execute a remote command. This is useful for just for‐
warding ports.