Inverti SCP su connessione SSH


17

Abbastanza spesso ho bisogno di alcuni file da alcuni server quando sono sul mio laptop. Ma se non so dove sia quel file, devo accedere al sshserver, guardarmi intorno exite quindi scp server:file .. Se sto lavorando con il mio desktop e il mio server, entrambi con IP statici, posso semplicemente SCP il file al contrario ( scp desktop:~ file), ma non posso farlo per il mio laptop. C'è un buon modo per SCP un file indietro su una connessione SSH? In modo che il computer a cui mi collego con SSH mandi un file indietro al client?


Perché non usare mDNS?
Ignacio Vazquez-Abrams,

1
Credo che a questa domanda sia già stata data una risposta corretta qui: unix.stackexchange.com/a/2869
shellster

Risposte:


20

Ciò sarebbe molto più semplice con SFTP, che è un'estensione di SSH che supporta operazioni di file più complesse di SCP. Praticamente tutte le moderne distribuzioni Unix e Linux lo supportano. Per usarlo, basta eseguire questo comando per connettersi al server:

sftp server

Quindi puoi usare i comandi lse cdper navigare e trovare il file che stai cercando. Una volta trovato, usa il getcomando per scaricarlo. Ad esempio, per scaricare file.txtnella directory di lavoro corrente sul server nella directory di lavoro corrente sul computer locale, eseguire:

get file.txt

Per scaricare /home/pavpanchekha/textfiles/file.txtsul server ~/textfiles/sul tuo computer locale, esegui invece:

get /home/pavpanchekha/textfiles/file.txt ~/textfiles/

Al contrario, puoi anche caricare file in questo modo. Per caricare file.txtdalla directory di lavoro corrente locale alla directory di lavoro corrente del server, digitare:

put file.txt

Puoi anche utilizzare percorsi completi per ognuno come puoi con get:

put ~/textfiles/file.txt /home/pavpanchekha/textfiles/file.txt

Per un elenco completo dei comandi SFTP disponibili, basta eseguire helpal sftp>prompt.


1
È fantastico, grazie. C'è un modo per avviarne uno al contrario se sono già in una connessione SSH? Altrimenti mi ritrovo a girare da qualche parte, rendendomi conto che voglio trasferire un file, uscire dalla connessione SSH, stabilire una connessione SFTP, uscire da quella e tornare a SSH.
Pavpanchekha,

2
@pav: SSH_CLIENTla variabile d'ambiente contiene l'indirizzo IP dell'host di connessione tra le altre informazioni. Puoi usarlo per creare un alias di shell per restituire facilmente SFTP all'host di origine. Basta aggiungere questa linea al ~/.bashrcserver: alias sftpback="sftp $(echo $SSH_CLIENT | awk '{print $1}')" quindi disconnettersi e riconnettersi da SSH in modo che la modifica abbia effetto o eseguirla come se fosse un comando in modo che abbia effetto immediato. Da lì in poi, puoi semplicemente eseguire sftpbackdi nuovo su SFTP il client da cui ti stai connettendo, indipendentemente da quale sia.
Patch del

Questo è il migliore !!! Grazie per avermi salvato da NANO (modifica del file online) rende il processo così semplice.
Mohsin,

0

Il gestore di file di console Midnight Commander (mc) ha un sistema VFS che consente la connessione SFTP / la gestione dei file su server remoti. Funziona anche in Cygwin su Windows. L'interfaccia predefinita mostra due pannelli indipendenti; potremmo aprire la directory remota SFTP in una di esse e trasferire facilmente i file da / verso l'altro pannello. Include un editor / visualizzatore di file (mcedit) con evidenziazione della sintassi.

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.