首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过常规ssh客户端

通过常规ssh客户端
EN

Unix & Linux用户
提问于 2021-04-18 08:31:20
回答 1查看 305关注 0票数 3

我使用的应用程序使用的是/usr/bin/ssh,并且需要无密码身份验证。同时,我想将它用于同时需要公钥和密码身份验证的服务器。在大多数情况下,仅仅使用sshpass是一个很好的解决方案(考虑到我的秘密密码是安全的,而且我同时也在使用安全的公钥身份验证),但是sshpass围绕着ssh而不是反过来。

当调用sshpass时,如何使用/usr/bin/ssh x?我目前的解决办法是下面的配置。它可以工作,但是它从目标服务器跳到它自己。我不想有这样的开销。

代码语言:javascript
复制
Host x
    HostName xxx.xxx.xx
    ProxyCommand sshpass -f passwordfile ssh -W %h:%p xxx.xxx.xx

是否有一种方法可以获得相同的结果而不跳转到服务器本身?

(否则--对于具有相同问题的未来人员-上述配置是一个可行的解决方案。)

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-04-19 12:42:25

考虑到我使用的应用程序是一个在ssh中搜索$PATH的CLI程序,所以可以修改PATH以包含一个特殊的ssh命令,它实际上是一个sshpass包装器。

sshpass包装到名为ssh的可执行文件中:

/path/to/bin/ssh

代码语言:javascript
复制
#!/usr/bin/env bash
sshpass -f /path/to/passwordfile ssh "$@"

然后,在运行ssh时,通过在.zshrc.bashrc中添加以下别名,将自定义D11的父dir放在PATH前面:

代码语言:javascript
复制
alias myapp="PATH=/path/to/bin:$PATH myapp"
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/645632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档