Comandos SSH
Deixe um agente executar comandos por SSH em um servidor público enquanto o Sallyport guarda a chave privada.
Nesta página
O agente envia um comando. O Sallyport entra com a sua chave ou senha, executa e devolve a saída. O agente não vê nenhuma das duas.
Adicione o host
- Abra Conectar um host SSH. A partir de Chaves, é Adicionar chave e depois Host SSH em Origem da chave.
- Digite um Nome da conexão. Os agentes o veem, e a ferramenta do host leva esse nome.
- Digite o Nome de host público ou endereço IP, a Porta SSH e o Usuário SSH. A porta é 22, a menos que você a mude.
- Escolha o Espaço de trabalho se tiver mais de um, e o Ambiente: Produção ou Teste.
- Em Entrar com, mantenha Chave privada e cole a Chave privada OpenSSH. Se a chave tiver frase secreta, digite-a em Frase secreta da chave (opcional).
- Um servidor que não aceita chave, como hospedagem compartilhada, um roteador ou um equipamento: escolha Senha e digite a Senha SSH. O Sallyport responde com ela tanto ao pedido de senha quanto ao pedido interativo do servidor.
- Toque em Salvar conexão SSH. A chave é só de escrita, e ninguém consegue lê-la de volta.
O Sallyport verifica o endereço ao salvar. Um endereço privado, ou um que aponte para o próprio Sallyport, é recusado.
Confira a identidade do servidor
Verificação da chave do host (opcional) oferece duas opções.
| Opção | O que acontece |
|---|---|
| Fixar a primeira chave após a autenticação SSH bem-sucedida | O padrão. O Sallyport grava a impressão digital da chave do servidor no primeiro login bem-sucedido e recusa qualquer mudança depois. |
| Exigir uma impressão digital que eu verifiquei | Cole a impressão digital SHA256: que o dono do servidor passou em Impressão digital SHA-256 verificada do host. O Sallyport só se conecta a um servidor com essa chave. |
A página da conexão mostra a impressão digital em Verificação da chave do host. Se a chave do servidor mudar, as chamadas param com host_key e nenhum comando roda.
Primeiro confirme a chave nova com o dono do servidor. Depois abra a página da conexão, toque em Substituir a chave fixada em Verificação da chave do host, cole a impressão digital SHA256: nova e toque em Fixar esta chave. Aprovações dadas para a chave antiga deixam de valer. Um script faz o mesmo com uma chave de console (API REST): GET /v1/ssh-hosts lista seus hosts com o id de cada um, e PATCH /v1/ssh-hosts/{id} com known_host_key fixa a chave nova.
export SP_CONSOLE_KEY='sp_ck_…'
curl --fail-with-body -H "Authorization: Bearer $SP_CONSOLE_KEY" \
https://mcp.sallyport.cloud/v1/ssh-hosts
curl --fail-with-body -X PATCH -H "Authorization: Bearer $SP_CONSOLE_KEY" \
-H 'Content-Type: application/json' \
-d '{"known_host_key": "SHA256:<new fingerprint>"}' \
"https://mcp.sallyport.cloud/v1/ssh-hosts/<host-id>"Escolha quais comandos esperam por você
A conexão nova vai para todo agente ativo do seu espaço de trabalho e do seu ambiente. Por padrão, os comandos rodam sem perguntar.
Para aprovar comandos, abra o agente em Agentes, encontre a conexão na lista Acesso e ative Perguntar sempre. Ou ajuste uma classe de cada vez:
- Leitura: comandos simples de leitura de uma lista fixa, como
ls,cat,tail,git status,docker psekubectl get. - Destrutiva: comandos como
rm,dd,mkfs,kubectl deleteedocker system prune. - Escrita: todo o resto. Um pipe,
;, um redirecionamento,$, um curinga,sudooush -ctornam um comando escrita, mesmo quando ele só lê.
O cartão de aprovação mostra o host e o comando exato. É esse comando, byte a byte, que roda.
Execute um comando
O agente mantém a sua conexão MCP com o Sallyport. list_access nomeia a ferramenta do host, que termina em _exec. A ferramenta aceita estes argumentos:
| Argumento | Significado |
|---|---|
cmd | O comando inteiro, como você digitaria num terminal. Obrigatório. |
timeout_s | Para o comando depois desse número de segundos. Um comando para aos 5 minutos em qualquer caso. |
intent | Uma frase sobre o motivo, mostrada a quem aprova. |
call_id | Continua uma chamada que espera aprovação. |
max_inline_bytes | Quanto da saída vem na resposta. 24 KiB por padrão. |
{
"cmd": "df -h",
"intent": "Check free disk space before the deploy"
}Quando o agente tem um host SSH, ele também recebe ssh_exec. Ela aceita os mesmos argumentos e mais host. Um host fora da lista do agente devolve um link onde você libera o acesso.
O mesmo host dá ao agente os seus arquivos: _sftp_read e _sftp_write os listam, leem, gravam, renomeiam e excluem por SFTP, com esta chave e esta chave de host. Veja Arquivos por SFTP.
Leia o resultado
- A resposta traz
exit_code,stdoutestderr. A saída que não é UTF-8 chega comostdout_base64oustderr_base64. - A saída longa é cortada em
max_inline_bytes, efetch_bodylê o resto. Um comando pode imprimir até 512 MiB. - Um comando não recebe terminal nem entrada. Use opções que pulam perguntas, como
apt-get -y. - Abra a chamada em Atividade para ver Resultado do comando SSH: o destino, Código de saída, Impressão digital da chave do host e o tamanho da saída.