# Guia do Linux/Avançado/Servidor ssh/Usando aplicativos clientes
## Usando aplicativos clientes

Esta seção explicará o uso dos utilitários ssh, scp e sftp.

### ssh

Esta é a ferramenta usada para seções de console remotos. O arquivo de configuração de usuários é ~/.ssh/config e o arquivo global /etc/ssh/ssh_config. Para conectar a um servidor ssh remoto:
Caso o nome do usuário seja omitido, seu login atual do sistema será usado. O uso da opção -C é recomendado para ativar o modo de compactação dos dados (útil em conexões lentas). A opção -l usuário pode ser usada para alterar a identificação de usuário (quando não é usada, o login local é usado como nome de usuário remoto). Uma porta alternativa pode ser especificada usando a opção -p porta (a 22 é usada por padrão).
Na primeira conexão, a chave pública do servidor remoto será gravada em ~/.ssh/know_hosts ou ~/.ssh/know_hosts2 (dependendo da versão do servidor ssh remoto, veja [#s-s-ssh-server-protodiff Diferenças nas versões do protocolo, Seção 15.3.7]), e verificada a cada conexão como checagem de segurança para se certificar que o servidor não foi alvo de qualquer ataque ou modificação não autorizada das chaves. Por padrão, o cliente utilizará o protocolo ssh versão 1, a opção -2 permite usar o protocolo versão 2.
Variáveis de ambiente personalizadas para o ssh poderão ser definidas no arquivo ~/.ssh/environment. Comandos que serão executados somente na conexão ssh em ~/.ssh/rc e /etc/ssh/sshrc caso contrário será executado o xauth por padrão.
OBS: Para utilizar autenticação Rhosts/Rhosts RSA (arquivos ~/.rhosts/~/.shosts) o programa ssh deverá ter permissões SUID root e conectará usando portas baixas (menores que 1024).

#### Redirecionamento de conexões do X

O redirecionamento de conexões do X Window poderá ser habilitado em ~/.ssh/config ou /etc/ssh/ssh_config ou usando as opções -A -X na linha de comando do ssh (as opções -a e -x desativam as opções acima respectivamente). Uma variável $DISPLAY é criada automaticamente para fazer o redirecionamento ao servidor X local.
Ao executar um aplicativo remoto, a conexão é redirecionada a um DISPLAY proxy criado pelo ssh (a partir de :10, por padrão) que faz a conexão com o display real do X (:0), ou seja, ele pulará os métodos de autenticação xhost e cookies. Por medidas de segurança é recomendável habilitar o redirecionamento individualmente somente se você confia no administrador do sistema remoto.

#### Cliente ssh para Windows

O putty é um cliente ssh Win32 que possui suporte aos protocolos versão 1 e 2 do ssh, aceita compactação além de funcionar também como cliente telnet. Seu tamanho é pequeno, apenas um executável e requer 220KB de espaço em disco. Ele pode ser baixado de http://www.chiark.greenend.org.uk/~sgtatham/putty/.
Outra alternativa é o MindTerm, este é baseado em Java e pode inclusive ser executado como um applet em uma página web. Este programa é encontrado em http://www.mindbright.se/mindterm/.

### scp

Permite a cópia de arquivos entre o cliente/servidor ssh. A sintaxe usada por este comando é a seguinte:
scp [origem] [destino]
Os parâmetros de origem e destino são semelhantes ao do comando cp mas possui um formato especial quando é especificado uma máquina remota:
* Um caminho padrão - Quando for especificado um arquivo local. Por exemplo: /usr/src/arquivo.tar.gz.
* usuario@host_remoto:/diretório/arquivo - Quando desejar copiar o arquivo de/para um servidor remoto usando sua conta de usuário. Por exemplo: gleydson@ftp.debian.org:~/arqs.
A opção -C é recomendável para aumentar a taxa de transferência de dados usando compactação. Caso a porta remota do servidor sshd seja diferente de 22, a opção -P porta deverá ser especificada (é "P" maiúscula mesmo, pois a -p é usada para preservar permissões/data/horas dos arquivos transferidos).

#### Cliente scp para Windows

O pscp faz a tarefa equivalente ao scp no windows, e pode ser baixado de http://www.chiark.greenend.org.uk/~sgtatham/putty/.

### sftp

Permite realizar transferência de arquivos seguras através do protocolo ssh. A conexão e transferências são realizadas através da porta 22 (ainda não é possível modificar a porta padrão). A sintaxe para uso deste comando é a seguinte:
sftp usuario@host_remoto
Compactação pode ser especificada através da opção -C. Um arquivo contendo os comandos usados na seção sftp poderá se especificado através da opção -b arquivo para automatizar tarefas.
OBS1: Para desativar o servidor sftp, remova a linha SubSystem sftp /usr/lib/sftp-server (que inicializa o sub-sistema ftp) do arquivo /etc/ssh/sshd_config e reinicie o servidor sshd.
OBS2: O suporte ao programa sftp somente está disponível ao protocolo ssh versão 2 e superiores.
OBS3: Algumas opções comuns do cliente ftp padrão (como mget) ainda não estão disponíveis ao sftp. Veja a página de manual para detalhe sobre as opções disponíveis.