Как мне подключиться к серверу, если имя пользователя содержит символ @


25

Я должен sftp на сервер к определенному порту, но имя пользователя содержит символ @.

Предположим, что пользователь «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

@ Тим ... спасение не помогает.
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тоже).
Жиль "ТАК - перестань быть злым"

Продолжай. Что нам делать, если пароль также содержит «@» или «/»
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.