alternativa Filezilla ou WinSCP para o Ubuntu

10

No Windows, estou usando o FileZilla para fazer upload / download de arquivos no meu site WordPress, via sftp, enquanto uso a chave ssh.

Agora o Linux é meu sistema operacional principal. No mês passado, o cliente FileZilla estava funcionando bem no Ubuntu 16.04, mas agora ele falha sempre que eu inicio. Eu pesquiso na internet e descobri que isso está acontecendo com muitos usuários. Infelizmente, o suporte ao FileZilla só tem uma resposta se perguntarmos a eles:

Ubuntu 16.04 is old OS, use 17.10 or Debian latest version.

Eu não quero usar 17.10. Então eu estou procurando a alternativa do cliente FileZilla para Linux, que eu posso usar como cliente sftp com a chave ssh.

Eu encontrei o gFTP (que é um programa antigo e não tenho certeza de quanto é seguro?), também descobri que posso usar o gerenciador de arquivos do Ubuntu para conectar ao meu servidor. É uma boa ideia conectar-se ao servidor usando o Nautilus ou o Caja?

Na verdade, não quero colocar meu nome de usuário / senha na caixa de diálogo que aparece quando clico em Arquivo > Conecte-se ao servidor, em vez disso, quero usar minha chave .ppk . Como posso acrescentar isso no Nautilus ou no Caja?

    
por ShahMoeen 19.12.2017 / 16:38

1 resposta

12

Usando o Nautilus

Você pode usar a opção Connect to Server no Nautilus como é mostrado na próxima imagem.

  • Sevocêprecisarencontrarocaminhodalinhadecomandoparaodiretóriomontado,useumadasabordagensapresentadasaqui: caminho CLI para conexão de rede ftp .
  1. O primeiro exemplo - sftp://victoria-pass/home/tri - usa host predefinido chamado victoria-pass e monta o diretório home/ do usuário remoto chamado tri .

    Para usar essa abordagem, você deve criar o arquivo de configuração do usuário para o cliente ssh local. O arquivo deve ser chamado config e colocado no diretório .ssh/ na home do usuário: ~/.ssh/config . De acordo com o exemplo, o conteúdo do arquivo deve ser:

    Host victoria-pass             # this is as 'nickname' of the connection
        HostName victoria.org      # or use the IP address
        IdentityFile ~/.ssh/id_rsa # or provide the fill path to another key
        User tri                   # use the actual name of the remote user
        Port 1111                  # provide the actual port of the remote server
        # other parameters...
    
    # setup each another Host in the same way...        
    

    Altere as permissões do arquivo:

    chmod 600 ~/.ssh/config
    

    Além disso, agora você deve poder se conectar a cada um desses hosts por um comando como:

    ssh victoria-pass
    
  2. O segundo exemplo - sftp://[email protected]:1111/home/tri - mostra como se conectar a um servidor ssh (sftp) remoto sem usar o arquivo ~/.ssh/config predefinido com uma porta ssh personalizada.

    Os principais contras dessa abordagem é que, se o arquivo de autenticação não for ~/.ssh/id_rsa , você deverá fornecê-lo antecipadamente pelo comando ssh-add . Por exemplo, se o arquivo de autenticação for chamado file.pem :

    ssh-add /full/path/to/the/authentication/file.pem 
    

    Acho que você deve fazer isso toda vez que reiniciar a máquina local ou incluir o comando acima no arquivo ~/.profile .

Usung gFTP

Aqui estão os passos para configurar o gFTP para usar chaves SSH.

  1. NomenuFTP,cliqueemPreferências;

  2. VáparaaguiaSSH;

  3. PreenchaocampoSSHExtraParamscomestevalor:

    -oIdentityFile=/home/<youruser>/.ssh/id_rsa

    Altere<username>comseunomedeusuárioreal.Ouuse:

    -oIdentityFile=~/.ssh/id_rsa
  4. NajanelaprincipaldogFTPescolhaSSH2comotipodeconexão;

  5. InsiraoendereçoHostdedestinoouoendereçoIP;

  6. ConfigureoSSHPortadamáquinadedestino(senãoforopadrão-22);

  7. DigiteUsuárioparaaconexãoSSH;

  8. InsiraafrasePassdachaveSSH(sehouveralguma);

  9. PressioneEnter.

UsandooSSHFS

Vocêpodemontarumdiretórioremoto(ouosistemadearquivosinteiro)pormeiodaferramentadelinhadecomandosshfs.Entãovocêpoderiamanipulá-lo"localmente" como desejar. Esse é o meu caminho preferível. Vamos supor que o diretório de montagem seja ~/mount e você queira montar o diretório inicial do usuário remoto:

sshfs [email protected]:/home/<user> /home/<local-user>/mount/

Ou se você criou o arquivo ~/.ssh/config :

sshfs host-name:/home/<remote-user> /home/<local-user>/mount/

Além disso, você pode criar também /etc/fstab entry - references:

Converter a chave PPK

Por favor, note que se você já usou a chave PPK , que significa PuTTY Private Key , você deve convertê-la porque, ao contrário do CloneZilla, as ferramentas acima não podem ler este formato. Para essa finalidade, você deve usar a ferramenta puttygen que faz parte do pacote putty-tools :

sudo apt install putty-tools

Agora você pode converter a chave desta maneira:

puttygen input-key-filename.ppk -O private-openssh -o output-key-filename.pem

Obrigado ao @steamdriver por esta nota. Aqui está a fonte e algumas referências adicionais:

De acordo com a segurança

Embora todas as abordagens usem o mesmo método de conexão - SSH - a segurança que elas fornecem deve ser equivalente. Da Wikipédia :

Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network... SSH provides a secure channel over an unsecured network in a client-server architecture, connecting an SSH client application with an SSH server...

The encryption used by SSH is intended to provide confidentiality and integrity of data over an unsecured network, such as the Internet... SSH uses public-key cryptography to authenticate the remote computer and allow it to authenticate the user, if necessary...

One way is to use automatically generated public-private key pairs to simply encrypt a network connection, and then use password authentication to log on...

Another is to use a manually generated public-private key pair to perform the authentication, allowing users or programs to log in without having to specify a password. In this scenario, anyone can produce a matching pair of different keys (public and private)...

    
por pa4080 19.12.2017 / 16:47