Servidor MCP (Model Context Protocol) que permite ao Claude conectar e executar comandos em servidores remotos via SSH.
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"ssh": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/ooclaar/ssh-mcp-server",
"ssh-mcp-server"
]
}
}
}# Clone o repositório
git clone https://github.com/ooclaar/ssh-mcp-server
cd ssh-mcp-server
# Instale
pip install -e .Depois adicione ao claude_desktop_config.json:
{
"mcpServers": {
"ssh": {
"command": "ssh-mcp-server"
}
}
}{
"mcpServers": {
"ssh": {
"command": "npx",
"args": ["-y", "ssh-mcp-server"]
}
}
}| Sistema | Caminho |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Após configurar, o Claude terá acesso às seguintes ferramentas:
Conecta a um servidor SSH.
Parâmetros:
hostname(obrigatório): IP ou hostname do servidorusername(obrigatório): Usuário SSHpassword: Senha (opcional se usar chave)private_key: Conteúdo da chave privada SSHport: Porta SSH (padrão: 22)
Executa comandos no servidor conectado.
Parâmetros:
command(obrigatório): Comando bash a executartimeout: Timeout em segundos (padrão: 60)
Cria/sobrescreve arquivo no servidor.
Parâmetros:
remote_path(obrigatório): Caminho do arquivocontent(obrigatório): Conteúdo do arquivo
Lê conteúdo de arquivo remoto.
Parâmetros:
remote_path(obrigatório): Caminho do arquivo
Lista arquivos em diretório.
Parâmetros:
path: Caminho a listar (padrão: diretório atual)
Mostra status da conexão atual.
Encerra a conexão SSH.
Após configurar, você pode simplesmente pedir ao Claude:
"Conecte no servidor 192.168.1.100 com usuário admin e senha secret123"
"Execute df -h para ver o espaço em disco"
"Liste os arquivos em /var/log"
"Crie um arquivo /tmp/teste.txt com o conteúdo 'Hello World'"
"Mostre o conteúdo do arquivo /etc/hostname"
"Verifique os processos rodando com ps aux"
"Desconecte do servidor"
Para conectar com chave privada, você pode:
- Copiar o conteúdo da chave e passar para o Claude:
Conecte no servidor srv.exemplo.com com usuário deploy usando esta chave:
-----BEGIN OPENSSH PRIVATE KEY-----
...conteúdo da chave...
-----END OPENSSH PRIVATE KEY-----
- Ou pedir ao Claude para ler (se tiver acesso ao filesystem):
Leia minha chave SSH em ~/.ssh/id_rsa e use para conectar em srv.exemplo.com
- Nunca compartilhe senhas ou chaves em conversas públicas
- As credenciais são usadas apenas durante a sessão
- Nenhuma credencial é armazenada permanentemente
- Use chaves SSH sempre que possível (mais seguro que senhas)
- Considere usar variáveis de ambiente para credenciais sensíveis
# Clone
git clone https://github.com/ooclaar/ssh-mcp-server
cd ssh-mcp-server
# Crie ambiente virtual
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou: venv\Scripts\activate # Windows
# Instale em modo desenvolvimento
pip install -e ".[dev]"
# Teste localmente
python -m ssh_mcp_server- Python 3.10+
- paramiko >= 3.0.0
- mcp >= 1.0.0
- Verifique se o
claude_desktop_config.jsonestá no local correto - Reinicie o Claude Desktop após editar a configuração
- Verifique usuário/senha
- Se usar chave, verifique se o formato está correto (deve incluir headers)
- Verifique conectividade de rede
- Verifique se a porta SSH está correta e aberta
- Tente aumentar o timeout
- Execute:
pip install mcp paramiko
MIT License - use como quiser!
PRs são bem-vindos! Por favor:
- Fork o repositório
- Crie uma branch (
git checkout -b feature/minha-feature) - Commit suas mudanças (
git commit -am 'Add feature') - Push para a branch (
git push origin feature/minha-feature) - Abra um Pull Request