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

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

предположим, что пользователь «user@domain.com», а ftp-сервер – «domain.com»,

Я закончу

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

что, очевидно, не будет работать, как я протестировал.

Какой любитель создает имя пользователя с помощью @? Хорошо, мой босс.

Как я могу это решить?

Передайте имя пользователя с помощью параметра -o User или через эквивалентную User директиву в файле конфигурации клиента ( ~/.ssh/config ).

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

Это относится и к ssh , scp и sshfs . Использование файла конфигурации вместо опций -o имеет то преимущество, что также работает с инструментами, которые вызывают ssh и не позволяйте вам легко передавать параметры командной строки, если это вообще возможно.

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

Это также сработает, хотя его действительно довольно плохая форма для предоставления пользователям такого типа имени.