[当我尝试在终端上执行普通的sshpass
命令时,它可以正常工作。这是我正在使用的命令:
sshpass -p 'Rito$pass@20' ssh '[email protected]'
[当我尝试通过创建别名使用同一命令时,它正在响应Permission denied, please try again.
我已经在.profile
文件中创建了别名。这是我的别名的外观:
alias myalias="sshpass -p 'Rito$pass@20' ssh [email protected]"
任何人都可以解释为什么在尝试使用别名时为什么出现权限被拒绝的错误,以及如何解决它?
更新:基于@pynexj注释,我运行了命令set -x; myalias; set +x
,发现密码中未考虑字符$
。我的密码是Rito$pass@20
,但它只考虑了Rito@20
,即包括$之后的所有字符都将被忽略,直到@字符为止。
根据评论,密码中包含$
字符。因此,要解决此问题,您需要转义$
字符。
例如,如果密码为pa$$word
:
alias myalias="sshpass -p 'pa\$\$word' ssh [email protected]"