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.exampleVerifique 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 sha256Prefira 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.