Я должен sftp на сервер к определенному порту, но имя пользователя содержит символ @.
Предположим, что пользователь «user@example.com», а ftp-сервер - просто «example.com».
Я закончу
sftp -oPort:8777 user@example.com@example.com
что явно не сработает, как я проверял.
Какой любитель создает имя пользователя с @? Хорошо, мой босс сделал.
Как мне это решить?
sftp -oPort:8777 user\@domain.com@domain.com
Ответы:
Передайте имя пользователя через
-o User
опцию или через эквивалентнуюUser
директиву в файле конфигурации клиента (~/.ssh/config
).Это относится и к
ssh
,scp
иsshfs
к тому же.-o
Преимущество использования файла конфигурации вместо опций заключается также в работе с инструментами, которые вызываютssh
и не позволяют легко передавать параметры командной строки, если они вообще есть.источник
ssh
иsftp
(иscp
тоже).@
или/
в пароле. Вы просто печатаете их. SSH даже не позволяет передавать пароль в командной строке или в файле конфигурации.Это также сработало бы, хотя это действительно плохая форма для предоставления пользователям такого типа имени.
источник
Замена
@
(«коммерческий в») на+
(«знак плюс») может быть приемлемой на некоторых серверах SFTP:источник