CH-J Server Managergerenciamento de servidor sobre SSH
E-mail
Todos os guias e artigos →

Como estabelecer uma ligação através de um servidor de salto SSH (bastião)

Aceda a servidores internos através de um ou mais servidores de salto, verifique cada chave de servidor e evite o reencaminhamento do agente.

Para que serve um servidor de salto

Um servidor de salto, também chamado bastião, é um servidor ao qual pode aceder diretamente e que consegue aceder aos seus servidores internos. Apenas a porta SSH do bastião está exposta; os servidores internos aceitam SSH apenas a partir da rede interna. Com ProxyJump, o cliente abre uma ligação SSH ao bastião e uma segunda ligação, cifrada de ponta a ponta, que passa por ele até ao destino. O bastião reencaminha o tráfego, mas não vê o conteúdo da sessão, e a sua chave privada permanece no seu computador.

Estabeleça a ligação pela linha de comandos

A opção -J indica o servidor de salto. Separe vários saltos por vírgulas; são utilizados pela ordem indicada. Adicione as definições a ~/.ssh/config quando utilizar regularmente o mesmo percurso, para que baste um alias curto.

ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal

# ~/.ssh/config
Host app-internal
    HostName app.internal
    User admin
    ProxyJump admin@bastion.example

Verifique cada chave de servidor

Cada salto é um servidor SSH distinto com a sua própria chave de servidor, pelo que deve confirmar as impressões digitais do bastião e do destino através de outro canal de confiança. Uma chave alterada em qualquer salto exige a mesma atenção que numa ligação direta. Compare a impressão digital apresentada na primeira ligação com o valor que um administrador lê no servidor.

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256

Prefira ProxyJump ao reencaminhamento do agente

O reencaminhamento do agente (ssh -A) permite a qualquer pessoa com permissões suficientes no bastião utilizar as suas chaves carregadas enquanto a ligação estiver ativa. ProxyJump não precisa disso, pois a autenticação no destino é feita a partir do seu próprio computador. Evite também guardar chaves privadas no bastião e limite quem pode iniciar sessão nele.

Falhas comuns

Comece por identificar o salto que falha: estabeleça uma ligação apenas ao bastião e depois execute ssh -vvv com -J para ver onde a ligação para. Se o bastião funcionar, mas o destino não, a causa costuma ser uma firewall entre ambos, um nome interno incorreto ou um destino que não aceita a sua chave. Um servidor configurado com AllowTcpForwarding no recusa funcionar como servidor de salto.

Servidores de salto no CH-J Server Manager

A Alpha 0.1.1 estabelece ligações através de um servidor de salto guardado ou introduzido manualmente, e os servidores guardados podem formar uma cadeia de até três servidores de salto. A chave de servidor é verificada em cada salto. O monitor de disponibilidade verifica um servidor atrás de um servidor de salto apenas através de uma sessão aberta com esse servidor de salto; caso contrário, apresenta o servidor como não verificado, nunca como online. A Beta 0.1.0 não tem esta funcionalidade.

Documentação detalhada

OpenSSH: ssh (-J) →

OpenSSH: ssh_config (ProxyJump) →

Desbloqueio biométrico e segurança →