Posso usar SSH no servidor host de salto B da minha máquina local A via ssh B
.
O servidor C só é endereçável (tem um endereço C.internal) e acessível de B via ssh C
.
Como faço para usar SSH em C diretamente da minha máquina local?
Qual seria a aparência do comando SSH e do arquivo de configuração?
configuração ssh em A:
Host B
User userB
HostName B.example.com
IdentityFile ~/.ssh/keyB
configuração ssh em B:
Host C
HostName C.internal
User userC
IdentityFile ~/.ssh/keyC
É possível fazer isso sem copiar ~/.ssh/keyC
do host B para a máquina local A?
Você precisa de um arquivo ssh_config como global
/etc/ssh/ssh_config
ou como usuário~/.ssh/config
:Agora, a partir de
A
, você podessh
C
.Existem várias opções, mas nenhuma delas é "comando único":
Você poderia executar um comando SSH para B que apenas executa um segundo comando SSH para C; você precisa adicionar a
-t
opção para fazê-lo funcionar para SSH interativo:ssh -t hostB "ssh hostC"
ssh -t hostB "ssh -t hostC htop"
ssh hostB ssh hostC ls -la /etc
Se você deseja uma maneira de fazer SSH "diretamente" de A para C, você precisará de alguma engenhoca adicional para encaminhar uma conexão de agente ssh de B para o sistema local (ou seja, o oposto do que
ssh -A
normalmente faria).SSH para o host B e, em seguida, inicie um agente ssh em um caminho especificado manualmente. Use o recurso SSH "stream forward" para permitir que clientes locais acessem o processo do agente remoto:
(A opção ssh/config é
LocalForward
.)Enquanto a conexão acima estiver em execução, você poderá conectar-se do HostA ao HostC usando a configuração normal do ProxyJump, usando chaves que existem apenas no HostB:
(As opções ssh/config são
IdentityAgent
eProxyJump
.)Outra opção é copiar
keyC
de B para A e armazená-lo em hardware seguro , como um chip TPM ou um smartcard (um Yubikey com modo PIV também conta). Isso permite usar a chave localmente na máquina A sem a possibilidade de roubo.(Para TPM2.0 no Linux, você pode optar por
tpm2-pkcs11
oussh-tpm-agent
; TPM2.0 no Windows pode ser usado via PuTTY-CAC. Para Yubikeys com PIV, existem módulos PKCS#11 para Windows e Linux. Estou usando um eToken 5110 do Ebay. Também existe uma maneira de usar chaves FIDO2 com SSH, mas seria necessário gerar uma nova chave.)