Como sftp , a opção -p tem um significado diferente. Isso significa "sempre preservar os tempos". É uma opção sem argumento, portanto, o seguinte 3022 é interpretado como um argumento independente (= nome do host).
Para definir uma porta personalizada, use -P switch (capital P), suportado pelo OpenSSH 5.4p1 e mais recente:
sftp -P 3022 [email protected]
Com versões mais antigas do OpenSSH, use:
sftp -o Port=3022 [email protected]
Tenha em atenção que, em algumas versões mais antigas do OpenSSH, o -P tinha ainda outro significado.