22.3. Configurando um Cliente OpenSSH

Para conectar uma máquina cliente a um servidor OpenSSH, você deve ter os pacotes openssh-clients e openssh instalados na máquina cliente.

22.3.1. Usando o comando ssh

O comando ssh é um subtituto seguro para os comandos rlogin, rsh e telnet. Permite que você se autentique e execute comandos em uma máquina remota.

Se autenticar (log in) em uma máquina remota com ssh é similar a usar o telnet. Para se autenticar em uma máquina remota chamada penguin.example.net, digite o seguinte comando em uma janela de comandos:

ssh penguin.example.net

A primeira vez em que você usar o ssh em uma máquina remota, você verá uma mensagem parecida com a seguinte:

The authenticity of host 'penguin.example.net' can't be established.
DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.
Are you sure you want to continue connecting (yes/no)? 

Digite yes para continuar. Isto adicionará o servidor à sua lista de máquinas conhecidas, conforme pode-se observar na mensagem a seguir:

Warning: Permanently added 'penguin.example.net' (RSA) to the list of known hosts.

Em seguida, você verá um diálogo pedindo sua senha para a máquina remota. Após inserir sua senha, você estará em uma janela de comandos da máquina remota. Se você não especificar um nome de usuário, o usuário com o qual você está autenticado na máquina cliente local será passado para a máquina remota. Se você quiser especificar um nome diferente de usuário, use o seguinte comando:

ssh username@penguin.example.net

Você também pode usar a sintaxe ssh -l nomedousuário penguin.example.net.

O comando ssh pode ser usado para executar um comando na máquina remota sem precisar autenticar em uma shell. A sintaxe é ssh nomedamáquina comando. Por exemplo, Se você quer executar o comando ls /usr/share/doc na máquina remota penguin.example.net, digite o seguinte comando em uma janela de comandos:

ssh penguin.example.net ls /usr/share/doc

Após inserir a senha correta, o conteúdo do diretório /usr/share/doc remoto será exibido e você retornará para a sua janela de comandos local.

22.3.2. Usando o Comando scp

O comando scp pode ser usado para transferir arquivos entre máquinas, através de uma conexão segura e criptografada. É parecido com o comando rcp.

A sintaxe geral para transferir um arquivo local para um sistema remoto é a seguinte:

scp localfile username@tohostname:/newfilename

O arquivolocal especifica a fonte e o usuário@máquina:/novonomedoarquivo especifica o destino.

Para transferir o arquivo local shadowman para a sua conta em penguin.example.net, digite o seguinte em uma janela de comandos substitua username pelo seu nome de usuário):

scp shadowman username@penguin.example.net:/home/username

Isso transferirá o arquivo local shadowman para /home/nomedousuário/shadowman em penguin.example.net.

A sintaxe geral para transferir um arquivo remoto para o sistema local é a seguinte:

scp username@tohostname:/remotefile /newlocalfile

O arquivoremoto especifica a fonte e o novoarquivolocal especifica o destino.

Pode-se especificar múltiplos arquivos como os arquivos fonte. Por exemplo: para transferir o conteúdo do diretório /downloads para um diretório existente chamado uploads na máquina remota penguin.example.net, digite o seguinte em uma janela de comandos:

scp /downloads/* username@penguin.example.net:/uploads/

22.3.3. Usando o Comando sftp

O utilitário sftp pode ser usado para abrir uma sessão FTP interativa protegida. É similar ao ftp, exceto pelo fato de utilizar uma conexão segura e criptografada. A sintaxe geral é sftp usuário@máquina.com. Uma vez autenticado, você pode usar uma série de comandos similares àqueles usados pelo FTP. Consulte a página man do sftp para obter uma lista destes comandos. Para ler a página man, execute o comando man sftp em uma janela de comandos. O utilitário sftp está disponível somente nas versões 2.5.0p1 e mais recentes do OpenSSH.

22.3.4. Gerando Pares de Chaves

Se você não deseja inserir sua senha toda vez que usar ssh, scp ou sftp para conectar a uma máquina remota, pode gerar um par de chaves de autorização.

As chaves devem ser geradas para cada usuário. Para gerar chaves para um usuário, siga os passos como o usuário que deseja conectar-se a máquinas remotas. Se você completar estes passos como root, somente root poderá usar estas chaves.

Iniciando com o OpenSSH versão 3.0, os ~/.ssh/authorized_keys2, ~/.ssh/known_hosts2 e /etc/ssh_known_hosts2 são obsoletos. O Protocolo SSH 1 e 2 compartilham os arquivos ~/.ssh/authorized_keys, ~/.ssh/known_hosts e /etc/ssh/ssh_known_hosts.

O Red Hat Enterprise Linux 3 usa o Protocolo SSH 2 e chaves RSA por default.

DicaDica
 

Se você reinstalar e quiser salvar seu par de chaves geradas, faça backup do diretório .ssh em seu diretório home. Após reinstalar, copie este diretório de volta ao seu diretório home. Este processo pode ser feito para todos os usuários de seu sistema, inclusive para root.

22.3.4.1. Gerando um Par de Chaves RSA para a Versão 2

Siga os seguintes passos para gerar um par de chaves RSA para a versão 2 do protocolo SSH. Este é o início default com o OpenSSH 2.9.

  1. Para gerar um par de chaves RSA que funcione com a versão 2 do protocolo, digite o seguinte comando em uma janela de comandos:

    ssh-keygen -t rsa

    Aceite a localização default do arquivo em ~/.ssh/id_rsa. Indique uma frase de senha diferente da senha da sua conta e confirme-a digitando novamente.

    A chave pública é gravada no ~/.ssh/id_rsa.pub. A chave privada é gravada no ~/.ssh/id_rsa. Nunca divulgue sua chave privada para ninguém.

  2. Altere as permissões do diretório .ssh usando o seguinte comando:

    chmod 755 ~/.ssh
  3. Copie o conteúdo do ~/.ssh/id_rsa.pub para ~/.ssh/authorized_keys na máquina com a qual você deseja se conectar. Se o arquivo ~/.ssh/authorized_keys existir, anexe o conteúdo do arquivo ~/.ssh/id_rsa.pub ao arquivo ~/.ssh/authorized_keys na outra máquina.

  4. Altere as permissões do arquivo authorized_keys usando o seguinte comando:

    chmod 644 ~/.ssh/authorized_keys
  5. Se você estiver rodando o GNOME, pule para a Seção 22.3.4.4. Se você estiver rodando o Sistema X Window, pule para a Seção 22.3.4.5.

22.3.4.2. Gerando um Par de Chaves DSA para a Versão 2

Use os seguintes passos para gerar um par de chaves DSA para a versão 2 do protocolo SSH.

  1. Para gerar um par de chaves DSA que funcione com a versão 2 do protocolo, digite o seguinte comando em uma janela:

    ssh-keygen -t dsa

    Aceite a localização default do ~/.ssh/id_dsa. Indique uma frase de senha diferente da senha da sua conta e confirme-a digitando novamente.

    DicaDica
     

    Uma frase de senha é um trecho de palavras e caracteres usado para autenticar um usuário. Frases de senha diferem das senhas, pois você pode usar espaços ou tabs na frase de senha. Frases de senha geralmente são mais longas que as senhas porque usualmente são frases ao invés de uma única palavra.

    A chave pública é gravada no ~/.ssh/id_dsa.pub. A chave privada é gravada no ~/.ssh/id_dsa. Importante: nunca forneça a chave privada a ninguém.

  2. Altere as permissões do diretório .ssh com o seguinte comando:

    chmod 755 ~/.ssh
  3. Copie o conteúdo do ~/.ssh/id_dsa.pub no ~/.ssh/authorized_keys na máquina que você deseja conectar. Se o arquivo ~/.ssh/authorized_keys existir, anexe o conteúdo do arquivo ~/.ssh/id_dsa.pub ao arquivo ~/.ssh/authorized_keys na outra máquina.

  4. Altere as permissões do arquivo authorized_keys usando o seguinte comando:

    chmod 644 ~/.ssh/authorized_keys
  5. Se você estiver rodando o GNOME, pule para a Seção 22.3.4.4. Se você estiver rodando o Sistema X Window, pule para a Seção 22.3.4.5.

22.3.4.3. Gerando uma Par de Chaves RSA para as Versões 1.3 e 1.5

Use os seguntes passos para gerar um par de chaves RSA, que são usadas pela versão 1 do Protocolo SSH. Se você está conectando somente entre sistemas que usam DSA, não precisa de um par de chaves RSA versão 1.3 ou 1.5.

  1. Para gerar um par de chaves RSA (para as versões 1.3 e 1.5 do protocolo), digite o seguinte em uma janela de comandos:

    ssh-keygen -t rsa1

    Aceite a localização default (~/.ssh/identity). Indique uma frase de senha diferente da senha de sua conta. Confirme a frase de senha digitando-a novamente.

    A chave pública é gravada no ~/.ssh/identity.pub. A chave privada é gravada no ~/.ssh/identity. Não forneça a chave privada a ninguém.

  2. Altere as permissões de seu diretório .ssh e de sua chave com os comandos chmod 755 ~/.sshe chmod 644 ~/.ssh/identity.pub.

  3. Copie o conteúdo de ~/.ssh/identity.pub para o arquivo ~/.ssh/authorized_keys na máquina em que você deseja se conectar. Se o arquivo ~/.ssh/authorized_keys não existir, você pode copiar o arquivo ~/.ssh/identity.pub no arquivo ~/.ssh/authorized_keys na máquina remota.

  4. Se você está rodando GNOME, pule para a Seção 22.3.4.4. Se você não está rodando GNOME, pule para a Seção 22.3.4.5.

22.3.4.4. Configurando o ssh-agent com GNOME

O utilitário ssh-agent pode ser usado para salvar sua frase de senha para que você não precise inserí-la toda vez que iniciar uma conexão ssh ou scp. Se você está usando o GNOME, o utilitário openssh-askpass-gnome pode ser usado para pedir a frase da senha quando você se autenticar no GNOME, e salvá-la até que você saia (faça o logout) do GNOME. Você não precisará inserir sua senha ou frase de senha para nenhuma conexão ssh ou scp feita durante esta sessão do GNOME. Se você não está usando GNOME, consulte a Seção 22.3.4.5.

Para salvar sua frase de senha durante a sessão do GNOME, siga estes passos:

  1. Você precisa ter o pacote openssh-askpass-gnome instalado; pode usar o comando rpm -q openssh-askpass-gnome para determinar se está instalado ou não. Se não está instalado, instale-o pelo seu conjunto de CD-ROMs do Red Hat Enterprise Linux, pelo site espelho FTP da Red Hat, ou usando a Red Hat Network.

  2. Selecione Botão do Menu Principal (no Painel) => Preferências => Mais Preferências => Sessões e clique na aba Programas Startup. Clique em Adicionar e insira /usr/bin/ssh-add no campo Comando Startup. Defina para este uma prioridade de número acima que quaisquer comandos existentes para garantir que seja executado por último. Um bom número de prioridade para o ssh-add é 70 ou maior. Quanto maior o número da prioridade, mais baixa é a prioridade. Se você tem outros programas listados, este deve ter a prioridade mais baixa. Clique em Fechar para sair do rpograma.

  3. Faça o logout e então se autentique novamente (log in) no GNOME; em outras palavras, reinicie o X. Após o GNOME ser reiniciado, aparece uma caixa de diálogo pedindo sua(s) frase(s) de senha. Indique a frase de senha requisitada. Se você tem ambos pares de chaves DSA e RSA configurados, terá que indicar ambos. A partir deste ponto, o ssh, o scp ou o sftp não devem mais solicitar senhas.

22.3.4.5. Configurando o ssh-agent

O ssh-agent pode ser usado para armazenar sua frase de senha para que assim você não precise inserí-la toda vez que fizer uma conexão ssh ou scp. Se você não está rodando o Sistema X Window, siga estes passos em uma janela de comandos. Se está rodando GNOME, mas não quer configurá-lo de modo que peça sua frase de senha quando se autenticar (veja a Seção 22.3.4.4), este procedimento funcionará em uma janela de terminal, como um XTerm. Se você está rodando X, mas não GNOME, este procedimento funcionará em uma janela de terminal. Entretanto, sua frase de senha será lembrada somente para aquela janela de terminal; não é uma configuração global.

  1. Digite o seguinte em uma janela de comandos:

    exec /usr/bin/ssh-agent $SHELL
  2. Então digite o comando:

    ssh-add 

    e indique sua(s) frase(s) de senha. Se você tem mais de um par de chaves configurado, terá que inserir cada um deles.

  3. Quando fizer logout, sua(s) frase(s) de senha serão esquecidas. Você deve executar estes dois comando cada vez que se autenticar em um console virtual ou abrir uma janela de terminal.