Directory lunghe SCP


0

Mi chiedo quale sia il modo più rapido per farlo

Sul mio computer locale ho un file in /some/long/path/name

Quando ho SSH in un'altra macchina, decido che voglio che il file locale vada in / remote / long / dir /

Quindi apro una nuova shell, scp il file a casa, torno alla prima shell e mv il file da casa alla directory corrente.

Lo trovo più semplice grazie al completamento con schede ecc.

Esiste un "trucco" per fare in modo che scp usi i file dal computer che si collega ad esso mostrandoli nel telecomando?

immagino che la sintassi di esempio sarebbe (da eseguire sul computer remoto)

scp host:/tabbed/complete/file file

o avrei sempre bisogno di una seconda connessione se decido a metà strada?

I computer da cui mi collego non hanno accesso diretto alla porta dall'esterno


1
Se hai impostato l'autenticazione con chiave pubblica per la connessione SSH all'host remoto, il tuo bash o zsh locale dovrebbe fornire il completamento della scheda per il filesystem remoto quando digiti qualcosa di simile scp remotehost:/he premi <tab>. Il completamento potrebbe non rispondere a seconda della connessione di rete, ma vale sicuramente la pena provare per nomi di percorsi lunghi.
n.

La mia chiave ha una password, è ancora possibile?
esussum,

Io non la penso così. bash / zsh deve stabilire una connessione SSH per fornire il completamento, cosa impossibile quando dovrebbe richiedere una password (che si tratti della password del sistema remoto o di quella della chiave).
n.

Risposte:


3

Questi sono su LAN corretti? Puoi usare sshfs per montare la directory remota sul tuo computer locale.

Crea un mountpoint

sudo mkdir -p /mnt/remotehost
sudo chmod 777 /mnt/remotehost

Montare la condivisione remota

sshfs user@remotehost:/home/user /mnt/remotehost

Usa la condivisione remota

ls /mnt/remotehost
cp /mnt/remotehost/Documents/*.odt ~/Documents/

Smonta la condivisione remota

fusermount -u /mnt/remotehost

Tieni presente che questo è molto più lento del semplice scpingombro dei file, ma può rivelarsi più veloce a lungo termine se devi controllare manualmente ogni volta. Questo ti dà anche il vantaggio di usare un file manager grafico (lento, specialmente se inizia a creare miniature).


no - solo accesso a internet. ssfs non mi permetterebbe di usare altri comandi sul telecomando. Anche sshfs è abbastanza lento a volte. sshfs è fantastico anche per il completamento a schede
esussum

0

Dai commenti, grazie a n.st per questo.

Salva chiave pubblica

ssh-copy-id user@remotehost

Configura bash

  • Installa il pacchetto bash-completamento

o

Configura zsh

  • Installa il pacchetto zsh
  • zsh
  • Continua al menu principale 1
  • Configura il nuovo sistema di completamento 2
  • Esegui lo strumento di configurazione (compinstall) 2
  • Scrivi a ~ / .zshrc Enter
  • Continua Enter
  • Continua Enter
  • Salva ed esci 0
  • Salva nuove impostazioni y
  • Imposta nuovi stili per l'uso immediato y
  • Esci e non fare nient'altro q

scp con completamento a schede remoto

scp user@remotehost:/Tab


Questo può essere leggermente migliorato: puoi usare ssh-agent per ricordare la chiave per la tua sessione, quindi avviare tutte le sessioni ssh che desideri senza inserire nuovamente la chiave e utilizzare l'espansione della scheda come suggerito. (Per usare ssh-agent, digita ssh-agent / path / to / private-key, inserisci la tua chiave privata e quindi avvia le sessioni ssh come di consueto (o usa SCP con l'espansione della scheda)
davidgo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.