Come posso sftp su un server se il nome utente contiene il simbolo @


25

Devo sftp su un server su una porta specifica ma il nome utente contiene il simbolo @.

supponiamo che l'utente sia "user@example.com" e che il server ftp sia solo "example.com"

Concluderò con

sftp -oPort:8777 user@example.com@example.com

ciò che ovviamente non funzionerà, come ho testato.

Che tipo di amatore crea un nome utente con @? Ok, lo ha fatto il mio capo.

Come lo risolvo?


1
Prova a sfuggire allo "spot pubblicitario" in questo modosftp -oPort:8777 user\@domain.com@domain.com
Tim

Se rimuovi la parte del nome utente e lasci il dominio, ti verrà richiesto il nome utente una volta inserito il comando?
Ladaghini,

@ladaghini - questo deve essere usato all'interno di uno script ... nessun prompt disponibile. Ok, conosco le implicazioni di avere nome utente e password in uno script, ma questo nome utente ha un'area limitata. Deve essere sftp perché questo server genera solo nomi utente per sftp.
SpaceDog,

@ Tim ... scappare non aiuta.
SpaceDog,

Risposte:


33

Passare il nome utente tramite l' -o Useropzione o tramite la Userdirettiva equivalente nel file di configurazione del client ( ~/.ssh/config).

sftp -o Port:8777 -o User=user@example.com example.com

Questo vale per ssh, scpe sshfspure. L'uso del file di configurazione invece delle -oopzioni ha il vantaggio di lavorare anche con strumenti che chiamano sshe non ti consentono di passare facilmente le opzioni della riga di comando.


Questo nome utente non ha accesso ssh, ma solo sftp.
SpaceDog,

@DigitalRobot s / ssh / sftp /
ladaghini

@DigitalRobot Questo funziona sia per sshe sftp(e scptroppo).
Gilles 'SO- smetti di essere malvagio' il

Vai avanti. Cosa dovremmo fare se il passwd contiene anche '@' o '/'
Shicheng Guo,

@ShichengGuo ??? Non ci sono problemi con @o /nella password. Li digiti e basta. SSH non consente nemmeno in alcun modo di passare la password sull'opzione della riga di comando o in un file di configurazione.
Gilles 'SO- smetti di essere malvagio' il

6
sftp -o Port:8777 'user@domain.com'@domain.com

Funzionerebbe anche questo, sebbene la sua forma davvero piuttosto scadente per loro di fornire agli utenti questo tipo di nome.


0

Sostituire @("commercial at") con +("plus sign)" potrebbe essere accettabile su alcuni server SFTP:

sftp -oPort:8777 user+example.com@example.com
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.