Tradução(s): Alemão – inglês – Francês – Italiano – Espanhol – Português Brasileiro
ToDo: direta (e traduzir) nesta página e um francês (mais completa)
- Introdução
- Instalação
- Instalação do cliente
- Instalação do servidor
- arquivos de Configuração
- Regeneração de chaves de host
- senha
- usando chaves partilhadas
- gerenciamento de chaves
- usando GUI
- Assegurar
- Servidor SSH
- Boas práticas com o Servidor SSH
- opções de configuração
- serviços externos
- Cliente SSH
- Boas práticas com o Cliente SSH
- Funções Adicionais
- Exibir arquivos em GUI
- Comandos Adicionais
- scp
- sftp
- modo de texto
- modo gráfico
- clusterssh
- ssh-agent e ssh-add
- keychain
- ssh-askpass
- libpam-usb
- comandos remotos
- SSH para o Debian a partir de outro sistema operacional
- Boas práticas de uso de SSH
- Troubleshooting
- OpenSSL version mismatch. Construído com 1000105f, tem 10001060
- SSH hangs
- resolução com IPQoS 0x00
- Resolução com o netcat
- Keep SSH connection alive
- Para Debian 7.X server
- Veja também:
Introdução
SSH significa Secure Shell e é um protocolo de início de sessão remoto seguro e outras seguro de serviços de rede através de uma inseguro network1. Veja Wikipedia-Secure Shell para informações mais gerais e ssh, LSH-client ou dropbear para as implementações de software SSH das quais o OpenSSH é o mais popular e mais amplamente utilizado2. O SSH substitui o telnet não encriptado, o rlogin e o rsh e adiciona muitas funcionalidades.
neste documento vamos usar a suíte de comando OpenSSH, também será assumido que as duas variáveis seguintes estão definidas:
remote_host=<the remote computer>remote_user=<your user name on $remote_host>
então, se você quiser usar as receitas abaixo, primeiro defina essas variáveis para o nome remoto do computador e o nome do usuário no computador remoto. Em seguida, cortar e colar os comandos abaixo deve funcionar. remote_host também pode ser um endereço IP.
Instalação
Instalação do cliente
Normalmente o cliente é instalado por padrão. Se não é o suficiente para executar como root:
apt install openssh-client
Instalação do servidor
O servidor permite ligar remotamente e é instalado executando como root:
apt install openssh-server
arquivos de Configuração
Os principais arquivos de configuração no diretório /etc/ssh :
-
ssh_config : arquivo de configuração do cliente
-
sshd_config : arquivo de configuração do servidor
além disso, este diretório contém a chave privada/pública pares de identificar a sua host :
- ssh_host_dsa_key
- ssh_host_dsa_key.pub
- ssh_host_rsa_key
- ssh_host_rsa_key.pub
Desde o OpenSSH para 5,73, uma nova chave privada/pública par está disponível:
- ssh_host_ecdsa_key
- ssh_host_ecdsa_key.pub
desde o OpenSSH 6.54, um novo par de chaves privadas/públicas está disponível:
- ssh_host_ed25519_key
- ssh_host_ed25519_key.pub
Regeneração de chaves de host
rm /etc/ssh/ssh_host_*dpkg-reconfigure openssh-server
login
senha
Se quiser fazer o login para us $remote_host como usuário $remote_user simplesmente digite
ssh $remote_user@$remote_host
e, em seguida, digite sua senha.
Se os nomes de usuário no computador local e remoto são idênticos, você pode descartar o $remote_user@-parte e simplesmente escrever
ssh $remote_host
Se esta é a primeira vez que você acessar o computador remoto, o ssh irá lhe perguntar se você tem certeza de que deseja se conectar ao computador remoto. Responda ‘ Sim ‘ depois de verificar a impressão digital do computador remoto, digite a sua senha, e o ssh irá ligá-lo à máquina remota.
usando chaves partilhadas
uma das funções do ssh é usar um par de chaves privadas/públicas para se ligar a uma máquina remota. Também conhecido como SSH keys. Este método permite-lhe aceder a uma máquina remota sem digitar sempre a sua senha. Para fazer isso, você deve gerar um par de chaves privadas/públicas em sua máquina local e depositar a chave pública na máquina remota.
para gerar a chave, use o programa ssh-keygen da seguinte forma
ssh-keygen -t rsa
este programa gera um par de chaves privadas/públicas no diretório ~/.ssh. O programa primeiro pede os arquivos de destino para as chaves, por padrão localizado em ~/.ssh. Depois é pedida uma frase-senha.
Nota: recomendamos que não deixe a frase-senha em branco. Um atacante que obtém a sua chave privada pode ligar-se às máquinas onde você depositou a sua chave pública, uma vez que a frase-senha está vazia. Escolha uma frase-senha longa e complexa.
a sua chave privada é id_rsa( não a dê a outra pessoa), a sua chave pública é id_rsa.pub.
copia a sua chave pública para uma máquina remota com o comando ssh-copy-id
ssh-copy-id -i ~/.ssh/id_rsa.pub $remote_user@$remote_host
agora pode ligar-se simplesmente à máquina remota e é pedida a senha. Uma vez feito, você se conecta ao host remoto. No caso de uma nova ligação, a frase-senha não é pedida de novo durante toda a sua sessão.
gerenciamento de chaves
usando GUI
opcionalmente, seahorse é uma aplicação GNOME que facilmente gerencia chaves de criptografia e senhas através de uma interface gráfica intuitiva (GUI). Seahorse é capaz de fazer várias operações. Como criar chaves SSH ou PGP, configurá-las e armazená-las. Continuar.
Assegurar
Servidor SSH
Por padrão, um servidor SSH é relativamente seguro. Com a ajuda de algumas boas práticas, opções de configuração e utilitários externos é possível tornar ainda mais difícil para os ‘robôs’ e crackers 4883>
Boas práticas com o Servidor SSH
-
aplicar actualizações de segurança do servidor openssh o mais rapidamente possível. O que permite proteger contra Falhas de segurança conhecidas.
-
activa a autenticação das chaves SSH apenas com senhas/frases-senha. Desactivar a autenticação apenas com senha.
-
considere o uso do fail2ban, que é um monitor de arquivos de log que Bane automaticamente um endereço IP após um número predefinido de tentativas de login falhadas. Que automaticamente protege contra ataques de Força bruta.
-
mais boas práticas para utilizar o ssh at https://lackof.org/taggart/hacking/ssh/
opções de configuração
deve-se editar o arquivo /etc/ssh/sshd_config para alterar os parâmetros e, em seguida, reiniciar o servidor ssh com
service ssh restart
-
Desativar o uso de senhas para autenticação (PasswordAuthentication não).
-
desactivar com a conta root (PermitRootLogin no).
-
Só permitir o início de sessão por determinados usuários ou grupos (AllowUsers e AllowGroups)
opções AllowUsers e AllowGroups não melhorar a segurança de um servidor SSH. Mas, em certos casos, o seu uso permite resistir a um ataque de Força bruta um pouco mais.
serviços externos
-
fail2ban: permite automaticamente colocar IPs na lista negra, tentando forçar um servidor SSH com a ajuda de iptables.
-
denyhosts : como fail2ban, o denyhosts permite bloquear endereços IP tentando forçar uma conexão com o ssh. Mas em contraste com o fail2ban ele não usa iptables, mas o arquivo /etc/hosts.negar.
Cliente SSH
Boas práticas com o Cliente SSH
-
aplicar actualizações de segurança do openssh-cliente o mais rapidamente possível. O que permite proteger contra Falhas de segurança conhecidas.
-
usar a autenticação das teclas SSH. Em vez de autenticação por senha.
-
adicionar senhas/senhas fortes às suas chaves SSH. Isso reduz o risco de ataques de Força bruta.
Funções Adicionais
Exibir arquivos em GUI
Em gerenciadores de arquivos, como o Konqueror, o Dolphin, o Krusader e o Midnight Commander você pode usar o PEIXE para visualizar arquivos em uma interface gráfica, usando:
fish://username@server_name_or_ip
Comandos Adicionais
scp
scp é um utilitário de linha de comando que permite a transferência de arquivos entre duas máquinas.
- enviar um ficheiro:
scp $source_file $remote_user@$remote_host:$destination_file
- copiar um ficheiro para a máquina local:
scp $remote_user@$remote_host:$source_file $destination_file
sftp
modo de texto
modo gráfico
clusterssh
ssh-agent e ssh-add
ssh-agent é um utilitário para gerenciar as chaves privadas e as suas frases. A maioria dos ambientes de desktop no Debian já estará configurada para executar o ssh-agent (através dos serviços de usuário do systemd ou /etc/X11/Xsession), por isso você não deve precisar iniciá-lo manualmente.
# Check if ssh-agent is runningenv | grep -i ssh
ainda assim terá de informar o agente para gerir as suas chaves.
# List keys managed by the agentssh-add -l# Add your ssh keyssh-add ~/.ssh/your_private_key
quando uma chave privada é necessária pela primeira vez, é-lhe pedida a sua frase-senha. o ssh-agent irá então lembrar-se da chave para que a sua frase-senha não seja mais pedida.
keychain
Keychain, fornecido pelo pacote keychain, é um script shell que permite usar o agente ssh em várias sessões do mesmo computador. Em efeito, após o primeiro start ssh-agent cria um socket permanente que permite a comunicação com ssh. Este socket é referenciado apenas no ambiente da sessão em que o agente foi iniciado. Keychain permite detectar o agente e propagar o acesso a este agente para outras sessões; isto permite usar uma única instância de ssh-agent por usuário em uma máquina.
ssh-askpass
ssh-askpass é um utilitário para simplesmente a questão da senha de uma chave privada ao usá-la. Existem várias implementações:
-
x11-ssh-askpass : versão X11.
-
kaskpass : integração de ssh-askpass para o ambiente KDE
-
ssh-askpass-gnome : integração do SSH-askpass no ambiente Gnome
libpam-usb
libpam-usb é um utilitário (apenas disponível até Debian Jessie) que permite a autenticação com uma pen USB. Este pacote inclui uma utilidade útil: pamusb-agente. Este utilitário, uma vez configurado correctamente, permite carregar as teclas SSH presentes na pen USB quando esta estiver ligada e descarregá-las quando estiver desligado.
comandos remotos
se apenas quiser executar um comando no computador remoto, não precisa de se autenticar. Você pode dizer ao ssh para executar o comando sem login, por exemplo,
ssh $remote_user@$remote_host 'ls *.txt'
lista todos os arquivos com extensão .txt no computador remoto. Isto funciona com aspas simples…’como mostrado aqui, com aspas duplas”…”, e sem citações. Pode haver diferenças entre estes três casos, no entanto, ainda não documentados aqui.
SSH para o Debian a partir de outro sistema operacional
-
PuTTY é uma aplicação de emulador de terminal que pode atuar como um cliente para o ssh. É amplamente usado por usuários do Windows.
-
a Wikipédia tem Comparison_of_SSH_clients
Boas práticas de uso de SSH
Você deve ler isso: https://lackof.org/taggart/hacking/ssh/
Este documento resume muitas e boas práticas regulares de usuários SSH deve seguir, a fim de evitar comprometer a segurança de suas contas (e de toda a máquina ao mesmo tempo).
Configure o seu ~/.ssh / config para enviar apenas a chave certa.
Host master.debian.org User account IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes
Troubleshooting
OpenSSL version mismatch. Construído com 1000105f, tem 10001060
Se receber uma mensagem de erro como esta ao iniciar o servidor ssh, terá de executar:
apt install openssh-server openssh-client
Also see bug # 732940.
SSH hangs
Issue
você está tentando SSH em um computador remoto. Mas durante o log-in SSH a sessão pára / congela indefinidamente. Assim, não vos é apresentado o prompt de comando. E você não é capaz de usar nenhum comando ssh ao usar o modo de depuração SSH a sessão fica nesta linha debug2: canal 0: open confirm rwindow 0 rmax 32768
Possible cause
With some routers behind NAT and when using OpenSSH. Durante a configuração da sessão, após a senha ter sido dada, o OpenSSH define o campo TOS (tipo de serviço) no datagram IP. O router engasga-se com isto. O efeito é que a sua sessão SSH está suspensa indefinidamente. Em outras palavras, comandos ou conexões SSH raramente funcionam ou não funcionam.
resolução com IPQoS 0x00
até o fabricante do router reparar o firmware. Aqui está uma opção para resolver esse problema:
-
verifique duas vezes que a sua versão openssh-server e openssh-client são 5.7 ou mais recentes. Por exemplo, a resolução abaixo deve funcionar com o Debian 7.11 Wheezy ou mais recente como vem com a versão 6.0 do OpenSSH.
-
Editar um dos dois seguintes arquivos localizados em:
~/.ssh/config
ou
/etc/ssh/ssh_config
Nota: o arquivo de configuração por usuário e ssh_config arquivo é para todos os usuários e de todo o sistema. Se não tiver a certeza edite o ficheiro de configuração do utilizador apropriado.
conteúdo do Ficheiro antes de
Host *
conteúdo do ficheiro após
Host * IPQoS 0x00
- se tiver alguma janela(s) de Terminal/consola já aberta (s). Fechem-nos a todos. Ao fazê-lo, irá fechar todas as sessões de SSH activas.
-
não há necessidade de reiniciar o OpenSSH ou o seu Debian. Tente de novo para SSH em qualquer servidor remoto. Deve funcionar. Feito com êxito ter corrigido esse problema
Graças a Joe e catmaker para esta dica
a documentação Relacionada no https://www.openssh.com/txt/release-5.7
Resolução com o netcat
aviso: sugere-se que se considere a utilização dessa outra resolução com IPQoS 0x00 em vez de usar a opção netcat/ProxyCommand nc %h %p. Porque IPQoS 0x00 é a opção oficial embutida no OpenSSH. Também IPQoS 0x00 é uma forma mais direta de resolver esse problema, e potencialmente uma opção mais segura. Porque o IPQoS 0x00 usa a encriptação do SSH para transferências seguras. Compare com as transferências não criptografadas do netcat. Fontes: 1 2. Se optar por usar a opção netcat/ProxyCommand nc %h %p, Leia.
outra opção para resolver que SSH hangs issue é usar ProxyCommand nc % h % p. Para isso, siga os mesmos passos que a resolução acima com IPQoS 0x00. But replace IPQoS 0x00 with
ProxyCommand nc %h %p
Keep SSH connection alive
For security reason, by default a SSH connection is automatically closed after a set period of time. Mas em alguns casos você quer manter essa conexão aberta. Tais como armazenamento em nuvem sobre a conexão SSH.
aviso: antes de activar a opção manter a ligação ssh activa. Sugere-se considerar a segurança tanto do seu cliente SSH como do seu servidor SSH. Porque, por exemplo, há um risco de que, se seus usuários deixarem sua sessão SSH aberta, e seu computador sem vigilância e desbloqueado. Qualquer um pode aproximar-se do computador e explorar a ligação ssh aberta. Por exemplo, usando o comando passwd, e alterar a senha. E assim obter acesso ao servidor. Em outras palavras, antes de ativar a opção manter a conexão SSH viva, sugere-se usar o seu melhor julgamento e boas práticas de segurança.
Para Debian 7.X server
Steps to keep SSH connection alive.
no ficheiro SSH server edit/etc/ssh / sshd_ config e adicione o seguinte no fundo desse ficheiro.
# Keep client SSH connection alive by sending every 300 seconds a small keep-alive packet to the server in order to use ssh connection. 300 seconds equal 5 minutes.ClientAliveInterval 300 # Disconnect client after 3333 "ClientAlive" requests. Format is (ClientAliveInterval x ClientAliveCountMax). In this example (300 seconds x 3333) = ~999,900 seconds = ~16,665 minutes = ~277 hours = ~11 days.ClientAliveCountMax 3333
à medida que o utilizador raiz reiniciar o serviço SSH:
service sshd restart
por favor, note que em sistemas Debian recentes (por exemplo, Wheezy 7 com atualizações atuais a partir de Nov. 2015), o comando acima não funciona mais e retorna o erro:
sudo service sshd restartsshd: unrecognized service
no entanto, os seguintes trabalhos:
sudo service ssh restart Restarting OpenBSD Secure Shell server: sshd.
Veja também:
-
tela – multiplexador de terminal com VT100/ANSI de emulação de terminal
-
o tmux – alternativa multiplexador de terminal
CategoryNetwork CategorySoftware