Comment puis-je sftp vers un serveur si le nom d'utilisateur contient le symbole @

25

Je dois sftp vers un serveur vers un port spécifique mais le nom d'utilisateur contient le symbole @.

supposons que l'utilisateur soit "[email protected]" et que le serveur ftp soit simplement "example.com"

Je terminerai avec

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

ce qui ne fonctionnera évidemment pas, comme je l'ai testé.

Quel type d'amateur crée un nom d'utilisateur avec @? D'accord, mon patron l'a fait.

Comment résoudre ça?

SpaceDog
la source
1
Essayez d'échapper à la "publicité à" comme çasftp -oPort:8777 user\@[email protected]
Tim
Si vous supprimez la partie du nom d'utilisateur et que vous quittez simplement le domaine, cela vous invite-t-il à saisir le nom d'utilisateur une fois que vous avez entré la commande?
ladaghini
@ladaghini - ceci doit être utilisé dans un script ... aucune invite disponible. Ok, je connais les implications d'avoir un nom d'utilisateur et un mot de passe dans un script, mais ce nom d'utilisateur a une zone limitée. Il doit être sftp car ce serveur ne génère que des noms d'utilisateur pour sftp.
SpaceDog
@Tim ... y échapper n'aide pas.
SpaceDog

Réponses:

33

Transmettez le nom d'utilisateur via l' -o Useroption ou via la Userdirective équivalente dans le fichier de configuration client ( ~/.ssh/config).

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

Cela vaut pour ssh, scpet sshfsaussi bien. L'utilisation du fichier de configuration au lieu des -ooptions présente l'avantage de travailler également avec des outils qui appellent sshet ne vous permettent pas de passer facilement les options de ligne de commande, le cas échéant.

Gilles 'SO- arrête d'être méchant'
la source
Ce nom d'utilisateur n'a pas d'accès ssh, juste sftp.
SpaceDog
@DigitalRobot s / ssh / sftp /
ladaghini
@DigitalRobot Cela fonctionne pour les deux sshet sftp(et scpaussi).
Gilles 'SO- arrête d'être méchant'
Continue. Que devons-nous faire si le mot de passe contient également '@' ou '/'
Shicheng Guo
@ShichengGuo ??? Il n'y a aucun problème avec @ou /dans le mot de passe. Vous venez de les taper. SSH ne permet même pas de transmettre le mot de passe sur l'option de ligne de commande ou dans un fichier de configuration.
Gilles 'SO- arrête d'être méchant'
6
sftp -o Port:8777 '[email protected]'@domain.com

Cela fonctionnerait également, bien que ce soit une forme très médiocre pour eux de fournir aux utilisateurs ce type de nom.

Spécial SFTP
la source
0

Le remplacement de @("commercial at") par +("signe plus)" peut être acceptable sur certains serveurs SFTP:

sftp -oPort:8777 [email protected]
AntonK
la source