Como usar o SSH (comandos ssh & rsync)?

44

Como posso fazer o SSH com um servidor remoto para procurar arquivos e editá-los? Eu tenho um nome de usuário e senha para usar.

el_pup_le
fonte

Respostas:

49

O SSH vem por padrão em todas as versões do Ubuntu, assim você economiza em ter que instalá-lo (+1 por tê-lo já lá;))

Exceto, é claro, no caso em que você deseja um servidor SSH para o seu servidor Ubuntu. Nesse caso, você

sudo apt-get install openssh-server 

o que deve deixar seu computador / servidor pronto para ser um servidor ssh.

Para usá-lo é bastante fácil:

ssh USER@SITEpor exemplo, se meu nome de usuário for cyrex e o site for ubuntu.com , faça o seguinte:

ssh [email protected]

Agora, digamos que você deseja copiar um arquivo chamado bubblegum.txtdo seu computador para o site do Ubuntu e deseja deixá-lo na /var/wwwpasta do site do Ubuntu. você pode fazer isso (supondo que seu usuário tenha permissões suficientes no site do Ubuntu) usando o irmão do SSH, SCP (que também vem por padrão no Ubuntu):

scp bubblegum.txt [email protected]:/var/www 

Observe o :entre o USER @ SITE e a pasta onde você deseja copiá-lo. É o que separa os dois elementos.

Agora, digamos que você esteja carregando um arquivo enorme com o scp e, em seguida, o pior acontece, o mundo explode. Como você pode continuar carregando esse arquivo no servidor. Então você tem o irmão mais velho do SCP, rsync (vem por padrão no Ubuntu). De muitas maneiras, scp e rsync fazem a mesma coisa, mas aqui estão algumas grandes diferenças entre eles:

  • O rsync pode fazer upload de arquivos parciais deixados no rsync ou scp após uma desconexão ou domínio do mundo.
  • O rsync pode mostrar o progresso muito melhor que o scp
  • O rsync pode otimizar o upload de forma que você possa realmente salvar segundos ou minutos no upload. Também mostra no final do upload quanto você salvou.

De qualquer forma, no caso do scp não conseguir carregar o arquivo inteiro, é aqui que o rsync entra para resgatar. (Obrigado a Marco Ceppi pela dica. Vote no seu comentário se você gosta de gatos .. e / ou cães)

Digamos que você fez a menção de upload acima do scp e chegou a 60%. Como você pode continuar nesses 60% sem perder o tempo necessário para o upload. Você faria o seguinte:

rsync --progress --partial bubblegum.txt [email protected]:/var/www  

Isso diz ao rsync para mostrar o progresso de uma maneira legível e agradável com a --progressbandeira. Ele também diz ao rsync para verificar e continuar de onde o arquivo bubblegum.txt chegou com o --partialsinalizador. Você também pode simplificar a quantidade a ser gravada com o parâmetro -P, que é o mesmo que --progress e --partial, para que o exemplo acima fique assim:

rsync -P bubblegum.txt [email protected]:/var/www  

Você pode até CTRL+ Cfazer o upload e continuar com o comando do rsync acima. É muito legal ter a capacidade de retomar algo a qualquer momento e quantidade de vezes.

Para mais informações sobre o rsync, que vem por padrão com o Ubuntu, você pode digitar os seguintes comandos do terminal:

man rsync  
info rsync  
rsync --help

Agora, para especificar uma porta para SSH. Para especificá-lo, você pode fazer o seguinte:

ssh [email protected] -p PORT. Por exemplo: ssh [email protected] -p 1234para dizer para usar a porta 1234 para o serviço SSH. Isso deve ser configurado no servidor primeiro para que ele funcione.

Para configurá-lo, basta abrir no servidor o arquivo ssh_config assim: nano /etc/ssh/ssh_confige alterar a linha que diz # port 22para outra porta. Lembre-se também de remover o comentário dessa linha. Deve ficar assim: port 1234no caso do exemplo acima.

Agora basta reiniciar o serviço ssh no servidor e pronto. Para reiniciar o serviço, faça o seguinte:

sudo restart ssh

ou

sudo /etc/init.d/ssh restart

NOTA - Você também pode usar o SSH de ferramentas da GUI, como as filezillaque oferecem a opção de usar ssh em vez de ftp. O ssh também pode ser acessado no menu Ubuntu:

insira a descrição da imagem aqui

que dá acesso a várias opções, incluindo compartilhamento do Windows, SSH e FTP :

insira a descrição da imagem aqui

Para mais informações sobre SSH, você pode usar um dos seguintes comandos no console na sua caixa Ubuntu:

man ssh  
info ssh  
ssh --help
Luis Alvarado
fonte
A que você está se referindo?
Luis Alvarado
23

Se você deseja navegar no servidor pelo Nautilus, como faz com os arquivos em sua máquina local:

  1. Abra o Nautilus ("Pasta Pessoal")
  2. Vá para "Arquivo" -> "Conectar ao servidor"

    Conecte-se ao servidor

  3. Selecione "SSH" em "Tipo de serviço"

  4. Coloque o endereço IP ou o domínio em "Servidor"

    Selecione SSH

  5. Adicione seu nome de usuário e marque "Adicionar favorito" se quiser que o local seja salvo nos seus favoritos.

A pasta deve abrir para você.

jamesadney
fonte
No Kubuntu, pode-se fazer o mesmo com o Krusader .
Adobe
6

Você pode usar sshfspara montar um diretório remoto no seu sistema de arquivos local.

Veja https://help.ubuntu.com/community/SSHFS :

Uso da linha de comando

Agora, supondo que você tenha um servidor SSH em execução em uma máquina remota, basta executar o comando SSHFS para montar o diretório remoto. Neste exemplo, o diretório remoto é / projects no host remoto agora. O ponto de montagem local é ~ / far_projects.

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

Para desmontar,

fusermount -u ~/far_projects

Para adicioná-lo ao seu / etc / fstab,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

Observe que você deve alterar $ USER para seu nome de login ao editar o fstab, mas não é necessário ao digitar comandos (o shell faz isso por você nesse caso).

Stacey Richards
fonte
4

Supondo que o servidor ssh já esteja configurado, abra um terminal e digite:

ssh username@hostname

Você será solicitado a fornecer sua senha; apenas entre. Se você precisar de um número de porta, adicione -p PORTNUM.

Dang Khoa
fonte
2

Se você pode usar o Vim, Pico ou etc, pode usar o terminal:

ssh [email protected]

Digite sua senha e você estará dentro. A partir daí, é como um terminal comum, exceto que você não tem GUI.

Observe que você pode adicionar a opção '-X' e, se o servidor tiver um servidor X configurado, você poderá executar programas GUI. Basta digitar o nome deles se você adicionou -X e ele abrirá uma janela da GUI.

Agora, você provavelmente desejará configurar o login sem senha. Se você ainda não possui uma chave, digite ssh-keygene apenas pressione enter para todos os padrões. Então faça ssh-copy-id [email protected]. Feito isso, basta digitar ssh [email protected]e você não precisa digitar sua senha!

Se o seu nome de usuário for o mesmo do seu laptop, você não precisará MYUSER@. Você pode apenas fazer ssh mysite.com. Você também pode usar a -l MYUSERopção em vez deMYUSER@

Se você deseja uma GUI, o Nautilus pode fazer isso. Arquivo ->Conectar ao servidor ->[selecione 'SSH' e preencha os detalhes de login] -> Conecte-se.

Se você quiser apenas copiar um único arquivo, use scp [cópia segura].
scp [email protected]:path/to/file.dat ./

Isso copia o arquivo "~ / path / to / file.dat" para o diretório atual. Observe que, se você não tiver uma barra ou um til depois do :, ele atuará como se estivesse em seu diretório pessoal [ ~/]. Se você deseja fazer o upload, scp ./local_file.dat [email protected]: isso o colocará em seu diretório pessoal.

Matt
fonte
0

ssh -X -C user@host nautilus --no-desktop para ir no modo gui :)

Morgie
fonte
O Nautilus local pode simplesmente se conectar a um compartilhamento SSH. Não é necessário executar o Nautilus remotamente. Na verdade, eu não recomendaria fazer isso. Sugestão criativa, mas ainda -1
Jo-Erlend Schinstad