我使用的应用程序使用的是/usr/bin/ssh,并且需要无密码身份验证。同时,我想将它用于同时需要公钥和密码身份验证的服务器。在大多数情况下,仅仅使用sshpass是一个很好的解决方案(考虑到我的秘密密码是安全的,而且我同时也在使用安全的公钥身份验证),但是sshpass围绕着ssh而不是反过来。
当调用sshpass时,如何使用/usr/bin/ssh x?我目前的解决办法是下面的配置。它可以工作,但是它从目标服务器跳到它自己。我不想有这样的开销。
Host x
HostName xxx.xxx.xx
ProxyCommand sshpass -f passwordfile ssh -W %h:%p xxx.xxx.xx是否有一种方法可以获得相同的结果而不跳转到服务器本身?
(否则--对于具有相同问题的未来人员-上述配置是一个可行的解决方案。)
发布于 2021-04-19 12:42:25
考虑到我使用的应用程序是一个在ssh中搜索$PATH的CLI程序,所以可以修改PATH以包含一个特殊的ssh命令,它实际上是一个sshpass包装器。
将sshpass包装到名为ssh的可执行文件中:
/path/to/bin/ssh:
#!/usr/bin/env bash
sshpass -f /path/to/passwordfile ssh "$@"然后,在运行ssh时,通过在.zshrc或.bashrc中添加以下别名,将自定义D11的父dir放在PATH前面:
alias myapp="PATH=/path/to/bin:$PATH myapp"https://unix.stackexchange.com/questions/645632
复制相似问题