Cite ssh-com-porta como um argumento único como -e 'ssh -p 2222'
ou -e "ssh -p 2222"
. O que você escreveu especifica ssh
como argumento para a opção -e
, em seguida, a opção -p
para rsync (igual a --perms
) seguida por um nome de arquivo provavelmente falso, que daria um erro se a conexão (e autenticação) for bem sucedida.
Não use $2222
. Isso não especificaria o número 2222; em singlequotes especificaria a string real $2222
que não é um número, em doublequotes expandiria para o segundo parâmetro posicional de seu shell, que é provavelmente uma string vazia, seguida de 222
.
Alternativamente , como diz a página man, você pode usar o arquivo de configuração ssh (normalmente) .ssh/ssh_config
para especificar a porta automaticamente (para todos, um ou alguns hosts). Isso também se aplica a outras coisas que você faz que usam ssh, como scp sftp
e, é claro, ssh
, que é provavelmente desejável aqui.