Як перейти на сервер, якщо ім'я користувача містить символ @


25

Мені потрібно перейти на сервер до певного порту, але ім'я користувача містить символ @.

припустимо, що користувач - це "user@example.com", а ftp-сервер - це просто "example.com"

Я закінчу

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

що явно не вийде, як я перевірив.

Який любитель створює ім’я користувача @? Гаразд, мій бос зробив.

Як я це вирішую?


1
Спробуйте уникнути "реклами на" такsftp -oPort:8777 user\@domain.com@domain.com
Тім

Якщо ви видалите частину імені користувача та просто залишите домен, чи запрошує вас ім'я користувача після введення команди?
ladaghini

@ladaghini - це використовуватиметься всередині сценарію ... жодних підказок немає. Гаразд, я знаю, що в скрипті є ім’я користувача та пароль, але це ім'я користувача має обмежену область. Це повинно бути sftp, оскільки цей сервер просто генерує імена користувачів для sftp.
SpaceDog

@Tim ... втеча від цього не допомагає.
SpaceDog

Відповіді:


33

Передайте ім'я користувача через -o Userпараметр або через еквівалентну Userдирективу у файлі конфігурації клієнта ( ~/.ssh/config).

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

Це відноситься і до ssh, scpі sshfsяк добре. Використання файла конфігурації замість -oопцій має перевагу також у роботі з інструментами, які викликають, sshі взагалі не дозволяють легко передавати параметри командного рядка.


Це ім'я користувача не має ssh доступу, а лише sftp.
SpaceDog

@DigitalRobot s / ssh / sftp /
ladaghini

@DigitalRobot Це працює як sshі sftpscpтеж).
Жил "ТАК - перестань бути злим"

Продовжувати. Що робити, якщо passwd також містить "@" або "/"
Shicheng Guo

@ShichengGuo ??? Немає проблем із паролем @або /з ним. Ви просто набираєте їх. SSH навіть не дозволяє жодним чином передавати пароль у параметрі командного рядка або у файлі конфігурації.
Жил "ТАК - перестань бути злим"

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

Це також би спрацювало, хоча це дійсно досить погана форма для надання користувачам такого типу імен.


0

Заміна @("комерційна на") на +("знак плюс") може бути прийнятною на деяких SFTP-серверах:

sftp -oPort:8777 user+example.com@example.com
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.