SSH - Tradução da man page

Estou disponibilizando o manual traduzido do SSH (Secure Shell) para que os interessados tenham maior facilidade em compreender o SSH e suas funções.

[ Hits: 15.005 ]

Por: Gustavo Henrique Goncalves em 04/03/2013


Base Virtual / Ambiente / Files



SSH - Base Virtual de Redes Privadas

SSH contém suporte para Virtual Private Network (VPN) tunnelling usando tun(4) rede pseudo-device permitindo que duas redes se juntem de forma segura. O "sshd_config(5)", opção de configuração PermitTunnel, controla se o servidor suporta isso, e em que nível (camada 2 ou 3 de tráfego).

O exemplo a seguir, iria ligar a rede cliente "10.0.50.0/24" com a rede remota "10.0.99.0/24" usando uma conexão ponto-a-ponto a partir de "10.1.1.1" a "10.1.1.2", desde que o servidor SSH esteja rodando no gateway para a rede remota, em "192.168.1.15", permitir.

No cliente:

# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2


No servidor:

# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1


O acesso do cliente pode ser mais afinado através do arquivo /root/.ssh/authorized_keys (veja abaixo) e a opção do servidor PermitRootLogin. A entrada a seguir, permitirá conexões em tun(4) dispositivo 1 para o usuário "Jane" e em tun dispositivo 2 para o usuário "john", se PermitRootLogin é definido para "forced-commands-only":

tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... John

Desde que uma instalação SSH-based implica em certa quantidade de sobrecarga, pode ser mais adequado para instalações temporárias, como para VPNs sem fio. VPNs mais permanentes são melhores fornecidas por ferramentas, como "ipsecctl(8)" e "isakmpd(8)".

Ambiente

SSH normalmente define as seguintes variáveis de ambiente:
  • DISPLAY - A variável DISPLAY indica a localização do servidor X11. É automaticamente definida por SSH para apontar a um valor na forma de "hostname:n", onde "hostname" indica o host onde o shell é executado e 'n' é um inteiro "- 1. ssh" utiliza este valor especial para transmitir conexões X11 pelo canal seguro. O usuário normalmente não deveria definir DISPLAY explicitamente, como que vai tomar a conexão X11 insegura (e exigirá ao usuário copiar manualmente qualquer autorização necessária de cookies).
  • HOME - Definido para o caminho do diretório HOME do usuário.
  • LOGNAME: Sinônimo de USER - Definido para compatibilidade com sistemas que utilizam esta variável.
  • MAIL - Definido para o caminho da caixa postal (mailbox) do usuário.
  • PATH - Definido para o caminho (PATH) padrão, conforme especificado na compilação do SSH.
  • SSH_ASKPASS - Se SSH precisar de uma senha, ele irá ler a senha do terminal atual se ele foi executado a partir de um terminal. Se SSH não tem um terminal associado a ele, mas DISPLAY e SSH_ASKPASS estão definidos, ele irá executar o programa especificado por SSH_ASKPASS e abrirá uma janela X11 para ler a senha. Isso é particularmente útil quando se chama ssh de um ".xsession" ou escrita relacionada (note que em algumas máquinas, pode ser necessário redirecionar a entrada de /dev/null para fazer este trabalho).
  • SSH_AUTH_SOCK - Identifica o caminho de um domínio UNIX-soquete usado para se comunicar com o agente.
  • SSH_CONNECTION - Identifica as extremidades da conexão cliente e servidor. A variável contém quatro espaços de valores separados: endereço IP do cliente, número de porta do cliente, endereço IP do servidor e número de porta do servidor.
  • SSH_ORIGINAL_COMMAND - Esta variável contém a linha de comando original se um comando forçado é executado. Ele pode ser usado para extrair os argumentos originais.
  • SSH_TTY - Este é definido para o nome da tty (caminho para o dispositivo) associado com o shell atual ou comando. Se a sessão atual não tem tty, esta variável não está definida.
  • TZ - Esta variável é definida para indicar o fuso horário atual se ele foi definido quando o daemon (servidor) foi iniciado (i.e. o daemon (servidor) passa o valor para novas conexões).
  • User - Definido para o nome do usuário logado.

Além disso, o SSH lê ~/.ssh/environment, e adiciona linhas do formato "VARNAME = value" para o ambiente, se o arquivo existe, e os usuários têm permissão para mudar seu ambiente. Para mais informações, consulte o PermitUserEnvironment opção em "sshd_config(5)".

Files

  • ~/.rhosts :: Este arquivo é utilizado para autentificação do host-based (veja acima). Em algumas máquinas este arquivo pode precisar ser de leitura à todos se o diretório home do usuário está em uma partição NFS, porque "sshd(8)" o lê como root. Além disso, este arquivo deve ser de propriedade do usuário, e não deve ter permissões de gravação para ninguém. A permissão recomendada para a maioria das máquinas é de leitura/escrita para o usuário, e não acessíveis por outros.
  • ~/.shosts :: Este arquivo é utilizado exatamente como ".rhosts", mas permite a autenticação host-based sem permitir login com rlogin/rsh.
  • ~/.ssh/ :: Este diretório é o local padrão para todas as configurações específicas do usuário e informações de autenticação. Não há nenhuma exigência geral para manter todo o conteúdo do diretório em segredo, mas as permissões recomendadas são de leitura /escrita/execução para o usuário, e não acessíveis por outros.
  • ~/.ssh/authorized_keys :: Lista as chaves públicas (RSA/DSA) que podem ser usadas para fazer login como este usuário. O formato deste arquivo é descrito na página do manual do "sshd(8)". Este arquivo não é altamente sensível, mas as permissões recomendadas são de leitura/escrita para o usuário, e não acessíveis por outros.
  • ~/.ssh/config :: Este é o arquivo de configuração por usuário. O formato de arquivo e opções de configuração são descritas em "ssh_config(5)". Devido ao potencial para o abuso, este arquivo deve ter permissões restritas: leitura/escrita para o usuário, e não acessíveis por outros. Ele pode ser de um grupo-gravável desde que o grupo em questão tenha apenas o utilizador.
  • ~/.ssh/environment :: Contém definições adicionais para variáveis de ambiente; veja em AMBIENTE, acima.
  • ~/.ssh/identity, ~/.ssh/id_dsa e ~/.ssh/id_rsa :: Contém a chave privada para autenticação. Esses arquivos contêm dados sensíveis e devem ser legíveis pelo usuário mas não acessíveis por outros (ler/escrever/executar). O SSH irá simplesmente ignorar um arquivo de chave privada se for acessível por outros. É possível especificar uma senha ao gerar a chave que será usada para criptografar a parte sensível deste arquivo utilizando 3DES.
  • ~/.ssh/identity.pub, ~/.ssh/id_dsa.pub e ~/.ssh/id_rsa.pub :: Contém a chave pública para autenticação. Esses arquivos não são sensíveis e podem (mas não precisam) ser lidos por qualquer pessoa.
  • ~/.ssh/known_hosts :: Contém uma lista de chaves host para todos os hosts do usuário conectados que ainda não estão na lista de todo o sistema de chaves host conhecidos. Veja sshd(8) para mais detalhes sobre o formato deste arquivo.
  • ~/.ssh/rc :: Comandos deste arquivo são executados por ssh quando o usuário faz login, pouco antes do shell do usuário (ou comando) é iniciado. Veja a página de manual do sshd(8) para mais informações.
  • /etc/hosts.equiv :: Este arquivo é para autentificação do host-based (veja acima). Ele só deve ser escrito pelo root.
  • /etc/ssh/shosts.equiv :: Este arquivo é utilizado da mesma maneira como o hosts.equiv, mas permite a autenticação host-based sem permitir login com rlogin/rsh.
  • /etc/ssh/ssh_config :: Arquivo de configuração Systemwide. O formato de arquivo e opções de configuração são descritas em ssh_config (5).
  • /etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key e /etc/ssh/ssh_host_rsa_key :: Estes três arquivos contêm as partes privadas das chaves host e são usados para a autentificação do host-based. Se a versão do protocolo 1 é usado, ssh deve ser setuid root, já que a chave do anfitrião é legível apenas pelo root. Para o protocolo versão 2, ssh usa ssh-keysign(8) para acessar as chaves host, eliminando a exigência do ssh ser setuid root quando o login é baseado em host de autenticação. Por padrão o ssh não é setuid root.
  • /etc/ssh/ssh_known_hosts :: Systemwide lista de chaves host conhecidas. Este arquivo deve ser preparado pelo administrador do sistema para conter as chaves host públicas de todas as máquinas da organização. Deve ser lido/visível por todos. Veja sshd (8) para mais detalhes sobre o formato deste arquivo.
  • /etc/ssh/sshrc :: Comandos deste arquivo são executados por ssh quando o usuário faz login, pouco antes que o shell do usuário (ou comando) é iniciado. Veja a página de manual do sshd (8) para mais informações.

Veja também

  • scp(1),sftp(1),ssh-add(1),ssh-agent(1),ssh-argv0(1),ssh-keygen(1), ssh-keyscan(1),ssh-vulnkey(1),tun(4),hosts.equiv(5),ssh_config(5), ssh-keysign(8),sshd(8)
  • The Secure Shell (SSH) Protocol Assigned Numbers, RFC 4250, 2006.
  • The Secure Shell (SSH) Protocol Architecture, RFC 4251, 2006.
  • The Secure Shell (SSH) Authentication Protocol, RFC 4252, 2006.
  • The Secure Shell (SSH) Transport Layer Protocol, RFC 4253, 2006.
  • The Secure Shell (SSH) Connection Protocol, RFC 4254, 2006.
  • Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints, RFC 4255, 2006.
  • Generic Message Exchange Authentication for the Secure Shell Protocol (SSH), RFC 4256, 2006.
  • The Secure Shell (SSH) Session Channel Break Extension, RFC 4335, 2006.
  • The Secure Shell (SSH) Transport Layer Encryption Modes, RFC 4344, 2006.
  • Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol, RFC 4345, 2006.
  • Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, 2006.
  • The Secure Shell (SSH) Public Key File Format, RFC 4716, 2006.
  • A. Perrig and D. Song, Hash Visualization: a New Technique to improve Real-World Security, 1999, International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99).

Autores

OpenSSH é um derivado do original e livre do SSH 1.2.12, liberado por:
  • Tatu Ylonen
  • Aaron Campbell
  • Bob Beck
  • Markus Friedl
  • Niels Provos
  • Theo de Raadt
  • Dug Song

Removeram muitos bugs, adicionaram novas funcionalidades e criaram o OpenSSH. Markus Friedl contribuiu com o suporte para versões do protocolo SSH 1.5 e 2.0.

Página anterior    

Páginas do artigo
   1. Sinopse / Descrição
   2. Autenticação
   3. Caracteres / Encaminhamento / Chaves de host
   4. Base Virtual / Ambiente / Files
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Compilando o KDE 4.0 no Slackware Current

Filosofia do Open Source, um novo jogo?

A Origem dos Nomes

O que é GNU Social? Porquê usar?

Cursos online grátis sobre Software Livre!

  
Comentários
[1] Comentário enviado por djosino em 04/03/2013 - 10:46h

perfeito

[2] Comentário enviado por removido em 04/03/2013 - 13:20h

Show de bola hein...!

[3] Comentário enviado por lucianofsjr em 08/03/2013 - 11:33h

parabéns cara!!
muito bom!!

[4] Comentário enviado por removido em 18/03/2013 - 00:13h

Parabéns!

Você teria o texto naquela linguagem de marcação de manpage, roff, groff, troff, sei lá o nome, disponibilizada para download, prá instalar aqui?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts