Wie sftp ich auf einen Server, wenn der Benutzername @ Symbol enthält

25

Ich muss zu einem Server zu einem bestimmten Anschluss sftp, aber der Benutzername enthält das @ -Zeichen.

Angenommen, der Benutzer ist "[email protected]" und der FTP-Server ist nur "example.com".

Ich werde mit enden

sftp -oPort:8777 [email protected]@example.com

was wird natürlich nicht funktionieren, wie ich getestet habe.

Welche Art von Amateur erstellt einen Benutzernamen mit @? Ok, mein Chef hat es getan.

Wie löse ich das?

Weltraumhund
quelle
1
Versuchen Sie, dem "Werbespot" wie folgt zu entkommensftp -oPort:8777 user\@[email protected]
Tim,
Wenn Sie den Benutzernamen entfernen und die Domain einfach verlassen, werden Sie nach Eingabe des Befehls zur Eingabe des Benutzernamens aufgefordert?
Ladaghini
@ladaghini - Dies soll innerhalb eines Skripts verwendet werden ... keine Eingabeaufforderung verfügbar. Ok, ich kenne die Auswirkungen von Benutzernamen und Passwort in einem Skript, aber dieser Benutzername hat einen begrenzten Bereich. Es muss sftp sein, da dieser Server nur Benutzernamen für sftp generiert.
SpaceDog
@ Tim ... es zu entkommen, hilft nicht.
SpaceDog

Antworten:

33

Übergeben Sie den Benutzernamen über die -o UserOption oder über die entsprechende UserAnweisung in der Client-Konfigurationsdatei ( ~/.ssh/config).

sftp -o Port:8777 -o [email protected] example.com

Dies gilt für ssh, scpund sshfsaußerdem. Die Verwendung der Konfigurationsdatei anstelle von -oOptionen hat den Vorteil, dass Sie auch mit Tools arbeiten können, die aufrufen sshund bei denen Sie Befehlszeilenoptionen nicht ohne weiteres übergeben können.

Gilles 'SO - hör auf böse zu sein'
quelle
Dieser Benutzername hat keinen SSH-Zugriff, nur SFTP.
SpaceDog
@DigitalRobot s / ssh / sftp /
ladaghini
@DigitalRobot Dies funktioniert für beide sshund sftp(und scpauch).
Gilles 'SO- hör auf böse zu sein'
Mach weiter. Was sollen wir tun, wenn das Passwort auch "@" oder "/" enthält
Shicheng Guo
@ ShichengGuo ??? Es gibt kein Problem mit @oder /im Passwort. Sie geben sie einfach ein. SSH erlaubt nicht einmal die Weitergabe des Kennworts über die Befehlszeilenoption oder in einer Konfigurationsdatei.
Gilles 'SO- hör auf böse zu sein'
6
sftp -o Port:8777 '[email protected]'@domain.com

Dies würde auch funktionieren, obwohl es für sie eine sehr schlechte Form ist, Benutzern diesen Namen zu geben.

SFTP-Spezial
quelle
0

Das Ersetzen von @("commercial at") durch +("plus sign") kann auf einigen SFTP-Servern akzeptabel sein:

sftp -oPort:8777 [email protected]
AntonK
quelle