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 "user@example.com" und der FTP-Server ist nur "example.com".

Ich werde mit enden

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


1
Versuchen Sie, dem "Werbespot" wie folgt zu entkommensftp -oPort:8777 user\@domain.com@domain.com
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 User=user@example.com 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.


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 'user@domain.com'@domain.com

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


0

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

sftp -oPort:8777 user+example.com@example.com
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.