私は/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であることを考慮すると、$PATH
PATHを実際にラッパーである特別なコマンドを含めるように変更できます。ssh
sshpass
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"