Impossibile usare scp con un alias bash


15

Questo codice non funziona:

scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/

L'alias è:

alias nameOfBashAlias='ssh myUsername@11.11.11.111'

Come posso risolvere questo problema?

modificare

È possibile qualcosa di simile al seguente codice, come eseguire molte istanze di bash?

scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/

Non ho ottenuto il codice sopra per funzionare.

Risposte:


22

Non consiglierei di usare un alias Bash per quello che stai cercando di realizzare. Puoi semplicemente inserire tutte le informazioni nel file di configurazione di SSH e finirlo. Leggi la pagina man per ssh_configse sei curioso di sapere da dove provengono. Puoi fare alcune cose pulite conssh_config

Il file si trova qui ~/.ssh/config

Usa il tuo editor preferito e crea il file, quindi adattalo alla tua situazione.

Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22

Ora sei pronto per emettere il seguente comando:

$ ssh nameOfBashAlias 

Qualcosa che scommetto che non sapevi è quanto tutto sia integrato. Ora che hai questa configurazione, funzionano anche i seguenti comandi

$ scp /some/file nameOfBashAlias:/path/to/storage/location/ 

Non più ricordare che scp usa "-P" per port e ssh usa "-p". Anche questo "alias" funziona anche con le app gui di OS X come Transmit.

OpenSSH ottiene i dati di configurazione dalle seguenti origini nel seguente ordine:

  1. opzioni della riga di comando
  2. file di configurazione dell'utente ~/.ssh/config
  3. file di configurazione a livello di sistema /etc/ssh_config

Sì, sono completamente d'accordo con il tuo. Oggi sto usando anche questo metodo, poiché si sincronizza molto meglio con altri sistemi e altri strumenti.
Léo Léopold Hertz

non funziona per me su MacOSX
Jabran Saeed,

@JabranSaeed Per favore, apri una nuova domanda o qui un wiki della comunità come risposta al tuo caso con un pezzo di informazioni sul tuo sistema operativo, versione, shell ecc. Per favore, fornisci anche un link sulla tua sfida qui nel commento. Questo thread è rilevante per GNU scp.
Léo Léopold Hertz 준영

FWIW sembra funzionare su OS X (almeno sulla mia, El Capitain 10.11.6)
Alex W

5

scpnon funziona bash. Dovresti eseguire questo:

 scp ~/Desktop/favicon.ico 11.11.11.111:/public_html/mySite/templates/blog/

Se tutto ciò che hai è l'alias e il codice sopra non è possibile per te, considera di eseguirlo in questo modo:

nameOfBashAlias cat /public_html/mySite/templates/blog/ > ~/Desktop/favicon.ico

In questo modo, stai effettivamente invocando sshe indirizzando il contenuto del file su un file su disco. Questo può essere scritto in altro modo per i caricamenti.


Il primo comando dovrebbe essere scp ~ / Desktop / favicon.ico nomeutente@11.11.11.111: / public_html / mySite / templates / blog /
Léo Léopold Hertz 준영

2

Gli alias vengono sostituiti quando sono la prima parola di un comando bash. Il tuo alias appare all'inizio della terza parola.

Vorrei usare una variabile di shell per questo.

blah='myUsername@11.11.11.111'
scp ~/Desktop/favicon.ico ${blah}:/public_html/mySite/templates/blog/

A proposito, penso che il tuo alias originale non dovrebbe contenere ssh. E l'ultimo esempio di codice contiene un> che sembra sbagliato.


@mataap: Grazie mille per la tua risposta!
Léo Léopold Hertz

0

No, i tuoi esempi non funzioneranno, perché non è così che BASHfunzionano gli alias. Ti suggerisco di usare una variabile. Metti questo nel tuo ~/.profileo ~/.bashrc[qualunque cosa tu usi]:
site="user@site.com"
quindi nel tuo terminale, questo funzionerà:
scp favicon.ico $site:/dir/


Oppure potresti scrivere una sceneggiatura come faccio io per il mio iPod. nel mio bashrc ho ipod=192.168.2.60, quindi nel mio script in source ~/.bashrcmodo da ottenere le mie variabili nello script, quindi nello script: scp $1 $ipod
il rovescio della medaglia è che dovrei modificare lo script per fare ricorsivo. e posso fare solo 1 file. ma quando ho bisogno di uno di quelli che di solito uso scpdirettamente dal terminale!
~ Matt

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.