Jak sftp na serwer, jeśli nazwa użytkownika zawiera symbol @


25

Muszę sftp do serwera do określonego portu, ale nazwa użytkownika zawiera symbol @.

załóżmy, że użytkownik to „użytkownik@example.com”, a serwer ftp to „example.com”

Skończę z

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

co oczywiście nie zadziała, jak przetestowałem.

Jakiego rodzaju amator tworzy nazwę użytkownika za pomocą @? Ok, mój szef zrobił.

Jak to rozwiązać?


1
Spróbuj uciec od „reklamy w” w ten sposóbsftp -oPort:8777 user\@domain.com@domain.com
Tim

Jeśli usuniesz część nazwy użytkownika i po prostu opuścisz domenę, czy wyświetli się monit o podanie nazwy użytkownika po wprowadzeniu polecenia?
ladaghini

@ladaghini - należy tego użyć w skrypcie ... brak monitu. Ok, znam konsekwencje posiadania nazwy użytkownika i hasła w skrypcie, ale ta nazwa użytkownika ma ograniczony obszar. Musi to być sftp, ponieważ ten serwer po prostu generuje nazwy użytkowników dla sftp.
SpaceDog

@ Tim ... ucieczka to nie pomaga.
SpaceDog

Odpowiedzi:


33

Przekaż nazwę użytkownika przez -o Useropcję lub przez równoważną Userdyrektywę w pliku konfiguracyjnym klienta ( ~/.ssh/config).

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

Dotyczy to ssh, scpa sshfstakże. Korzystanie z pliku konfiguracyjnego zamiast -oopcji ma tę zaletę, że działa również z narzędziami, które wywołują sshi nie pozwalają w żaden sposób łatwo przekazać opcji wiersza poleceń.


Ta nazwa użytkownika nie ma dostępu do ssh, po prostu sftp.
SpaceDog

@DigitalRobot s / ssh / sftp /
ladaghini

@DigitalRobot Działa to zarówno sshi sftp(a scptakże).
Gilles „SO- przestań być zły”

Trwać. Co powinniśmy zrobić, jeśli hasło zawiera również „@” lub „/”
Shicheng Guo,

@ShichengGuo ??? Nie ma problemu z hasłem @ani /z hasłem. Po prostu je wpisz. SSH nawet nie zezwala na przekazywanie hasła w opcji wiersza poleceń ani w pliku konfiguracyjnym.
Gilles „SO- przestań być zły”

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

To też by działało, chociaż jest to naprawdę dość kiepska forma, aby zapewnić użytkownikom tego typu nazwy.


0

Zastąpienie @(„komercyjny w”) +znakiem („plus”) może być dopuszczalne na niektórych serwerach SFTP:

sftp -oPort:8777 user+example.com@example.com
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.