SSH!
SSH é o comando divino - acho que é o comando geral mais valioso para aprender. As opções podem ser bastante assustadoras, mas parece que estou constantemente aprendendo a usar novas opções de linha de comando para SSH que nunca pensei que fossem necessárias. Eu posso ter usado todos eles neste momento.
Quanto mais você o usa, mais aprende. Você pode usá-lo para fazer algumas coisas INCRÍVEIS.
Nota: TODAS essas coisas são executáveis remotamente, sem configuração no servidor, exceto pelo fato de o servidor ssh estar em execução.
Montar um sistema de arquivos pela Internet
pesquise na rede por SSHFS
Comandos de encaminhamento .
O protocolo SVN + SSH é o Subversion de um cliente remoto para um servidor sem NO DEAMON em execução! O comando SVN inicia o servidor através do shell ssh e passa as informações para frente e para trás através do canal existente. O programa rsync faz a mesma coisa, é executado em um servidor sem rsync deamon iniciando um via SSH. É fácil escrever seus próprios arquivos bash para fazer truques semelhantes.
Cadeia para atravessar firewalls
Eu uso isso o tempo todo para passar pelo meu servidor linux em casa para o meu mac.
Portas de encaminhamento:
parece apenas moderadamente útil até você perceber que pode saltar através do firewall doméstico e configurar seu roteador em casa do trabalho como se estivesse fazendo isso de dentro da sua rede doméstica).
Encaminhar solicitações X:
Este é outro incrível. Com ou sem um servidor X em execução no seu sistema remoto, você pode executar um programa x-windows e a janela aparecerá na tela local. Basta usar o interruptor -X, isso é tudo!
Como você não precisa ter um servidor X em execução no servidor remoto, o impacto da CPU no servidor é mínimo, você pode ter um servidor TINY Linux que oferece aplicativos enormes para o seu poderoso PC de jogo executando Windows e cygwin / X.
É claro que o VI e o EMACS funcionam com SSH, mas quando estou em casa, às vezes quero mais. Eu uso o ssh -X para iniciar uma cópia do Eclipse! Se o seu servidor é mais poderoso que o seu laptop, você tem a GUI bem ali, mas as compilações são feitas no servidor, portanto, não se preocupe com a carga do sistema.
Executar em arquivos em lote
(ou seja, execute um arquivo em lote local que "faça coisas" em outros sistemas):
Duas coisas se combinam para deixar este legal. Uma é que você pode eliminar as solicitações de senha usando chaves de criptografia (mais seguras). A segunda é que você pode especificar um comando na CLI SSH. Eu usei isso de algumas maneiras interessantes - como quando uma compilação falha no servidor remoto, eu colocava o SSH no meu computador e reproduzia um arquivo de som).
Lembre-se de que você pode redirecionar a saída do comando remoto e usá-la no seu arquivo em lote local, para que você também possa executar localmente uma compilação em execução no servidor.
Incorporado ao Mac
O servidor e o cliente são incorporados no mac e no linux. No caso do Mac e do Ubuntu, ativar um servidor é tão simples quanto encontrar a caixa de seleção correta.
Em um PC, instale o cygwin ou cygwin / X (o cygwin / X permitirá que você encaminhe sua saída x-window da sua máquina Linux para o seu PC com Windows - ele instala um servidor X)
Dicas importantes / arquivo de configuração
Nunca use a porta 22 no seu firewall. Você terá várias tentativas de invasão, mas não vale a pena. Apenas faça com que o firewall encaminhe uma porta diferente para o servidor.
Existem amplas opções de configuração que permitem simplificar significativamente seus comandos ssh. Aqui está um exemplo meu no trabalho:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
Quando digito "ssh home" (nada mais), ele age como se eu tivesse digitado:
ssh -p 12345 bill@billshome.hopto.org
e depois encaminha minha porta local 1025 para o meu sistema "mac" em casa. A razão para isso é que tenho outra entrada no meu arquivo:
Host mac
hostname localhost
port=1025
para que, depois de criar uma "ssh home" e ainda ter a janela aberta, eu possa digitar "ssh mac" e o computador em funcionamento aqui tente conectar-se à sua própria porta 1025 que foi encaminhada para "mac: 22 "pelo outro comando, para que ele se conecte ao meu Mac em casa através do firewall.
Editar - script legal!
Desenterrei um script antigo que adoro - tive que voltar e publicá-lo para qualquer pessoa aqui que pudesse estar interessada. O script é chamado "authMe"
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
Se você possui esse script no diretório inicial e existe um host ao qual você pode se conectar (via ssh), digite "./authMe hostName".
Se necessário, ele criará um par de chaves público / privado para você, em seguida, transferirá o ssh para a outra máquina e copiará sua chave pública (o comando ssh solicitará uma senha ...)
Depois disso, o comando SSH não deve mais solicitar sua senha ao se conectar ao sistema remoto, ele usará o par de chaves pública / privada.
Se o seu computador remoto nem sempre estiver seguro, considere definir uma "senha" quando solicitado.
Você também pode configurar o servidor ssh na extremidade oposta para não permitir senhas de texto (apenas chaves) para segurança adicional.