Введите ssh-with-port в качестве единственного аргумента, например -e 'ssh -p 2222'
или -e "ssh -p 2222"
. То, что вы написали, указывает ssh
в качестве аргумента опции -e
затем опцию -p
для rsync (то же самое, что и --perms
), за которой следует, вероятно, поддельное имя файла, которое выдаст ошибку, если соединение (и аутентификация) будет успешным.
Не используйте $2222
. Это не будет указывать номер 2222; в одинарных кавычках будет указана фактическая строка $2222
которая не является числом, в двойных кавычках она будет расширена до второго позиционного параметра вашей оболочки, который, вероятно, является пустой строкой, за которым следует 222
.
В качестве альтернативы, как сказано в справочной странице, вы можете использовать конфигурационный файл ssh (обычно) .ssh/ssh_config
для автоматического указания порта (для всех, одного или нескольких хостов). Это также относится к другим вещам, которые вы делаете, которые используют ssh, таким как scp sftp
и, конечно, ssh
, что, вероятно, здесь желательно.