汎用SSHクライアントを介したsshpass

汎用SSHクライアントを介したsshpass

私は/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

サーバー自体に移動せずに同じ結果を得る方法はありますか?

(そうでない場合 - 後で同じ問題が発生した場合は、上記の構成が機能するソリューションです。)

ベストアンサー1

私が使用しているアプリケーションがプログラムsshで検索するCLIであることを考慮すると、$PATHPATHを実際にラッパーである特別なコマンドを含めるように変更できます。sshsshpass

sshpass次の実行可能ファイルでラップされますssh

/path/to/bin/ssh:

#!/usr/bin/env bash
sshpass -f /path/to/passwordfile ssh "$@"

次に、またはに次のエイリアスを追加して、ssh実行時にPATHにカスタマイズされた親ディレクトリを追加します。myapp.zshrc.bashrc

alias myapp="PATH=/path/to/bin:$PATH myapp"

おすすめ記事