Como instalar e ativar o servidor SSH (openssh-server) no Ubuntu 24.04 e 22.04, liberar o firewall e testar o acesso remoto sem ficar trancado fora.
Para acessar um computador ou servidor Ubuntu pela rede, ele precisa do servidor SSH, o pacote openssh-server. No Ubuntu Server, o instalador oferece a opção Install OpenSSH server; se ela ficou desmarcada, ou se é um Ubuntu Desktop, instale você mesmo. O artigo antigo indicava o rssh, que não é servidor SSH: era um shell restrito para cópias de arquivos, foi abandonado e saiu dos repositórios.
Antes de começar
- Acesso ao terminal da máquina (console, tela física ou console do provedor) com um usuário que tenha
sudo. - Se a máquina estiver atrás de um roteador ou firewall externo, a porta 22 precisa estar liberada nele também.
Como instalar o SSH no Ubuntu
- Instale o servidor OpenSSH.
sudo apt update sudo apt install openssh-server - Confira se o SSH está ativo. Aqui há uma diferença entre as versões:
- Ubuntu 22.04 e Debian 12:
systemctl status sshdeve mostraractive (running). - Ubuntu 24.04: o SSH usa ativação por socket do systemd. Quem fica escutando a porta é o
ssh.socket, e o serviço só sobe na primeira conexão. Confira comsystemctl status ssh.socket, que deve mostraractive (listening).
sudo ss -tlnp | grep ':22 ' - Ubuntu 22.04 e Debian 12:
- Libere o SSH no firewall antes de ativá-lo. O UFW vem instalado, mas desligado. Se você for ligá-lo, libere o SSH primeiro, senão a conexão remota cai:
O avisosudo ufw allow OpenSSH sudo ufw enableCommand may disrupt existing ssh connectionsé esperado; responday. - Descubra o IP da máquina.
hostname -I - Teste de outro computador. No terminal do Windows, do Mac ou do Linux:
Troque pelo seu usuário e pelo IP mostrado no passo anterior. Detalhes de cada sistema estão em como acessar o SSH do servidor.ssh [email protected]
Configuração básica recomendada
A configuração fica em /etc/ssh/sshd_config, e o Ubuntu também lê os arquivos da pasta /etc/ssh/sshd_config.d/, que são carregados primeiro. No SSH vale a primeira ocorrência de cada opção, então um arquivo nessa pasta pode anular o que você mudar no arquivo principal. Para ver a configuração realmente em uso:
sudo sshd -T | grep -Ei 'permitrootlogin|passwordauthentication|^port'
- Login do root: o padrão do Ubuntu é
prohibit-password(osshd -Tpode mostrarwithout-password, nome antigo da mesma opção): o root só entra com chave SSH. Entre com o seu usuário e usesudo. - Chave em vez de senha: configure a chave SSH e só depois desative o login por senha (
PasswordAuthentication no).
Depois de editar, confira a sintaxe e aplique:
sudo sshd -t
sudo systemctl restart ssh
Problemas comuns
ssh: connect to host ... port 22: Connection refused
Não há SSH escutando. Confirme que o openssh-server está instalado e que a porta 22 aparece no ss -tlnp. No Ubuntu 24.04, se o ssh.socket estiver parado, ative com sudo systemctl enable --now ssh.socket; no 22.04, com sudo systemctl enable --now ssh.
systemctl status ssh mostra inactive (dead) no Ubuntu 24.04
É normal antes da primeira conexão. Na mesma tela aparece TriggeredBy: ssh.socket: é o socket que aguarda as conexões e acorda o serviço.
Unit sshd.service could not be found
No Ubuntu e no Debian o serviço se chama ssh. O nome sshd é o do AlmaLinux e do Rocky Linux.
Permission denied (publickey)
O servidor não aceita senha. Em VPS e imagens de nuvem, o arquivo /etc/ssh/sshd_config.d/50-cloud-init.conf costuma trazer PasswordAuthentication no. Entre com a chave SSH ou ajuste esse arquivo pelo console.
Missing privilege separation directory: /run/sshd
Pode aparecer no sshd -t do Ubuntu 24.04 quando o serviço ainda não subiu nenhuma vez. Crie a pasta com sudo mkdir -p /run/sshd e repita o teste.
Liguei o UFW e perdi o acesso
O SSH não foi liberado antes do ufw enable. Pelo console do servidor, rode sudo ufw allow OpenSSH.