リモートサーバーがあります。パスワードを入力せずに公開鍵を利用してSSHで接続しようとしますが、リモートシステムが公開鍵認証を拒否します。
それでは、最良のアプローチは何ですか?試してみてはいかがでしょうかsshpass
?
ベストアンサー1
編集する
私が参照として使用したリンクでより多くのオプションを見つけることができます。
インストールした場合は、sshpass
SSH接続を自動化して各コンピュータにパスワードを入力する必要はありません。
SSHPASS='password'
sshpass -e your commands here
1. インストールsshpass
ssh
これはパスワードをコマンドライン引数として渡すことができる素晴らしい小さなプログラムです。明らかにこれは非常に安全な解決策ではないので、「セキュリティ上の考慮事項」セクションを読んでお勧めしますman sshpass
。
とにかくディストリビューションリポジトリで使用できます。 Debian ベースのシステムでは、次のコマンドを使用してインストールできます。
sudo apt-get install sshpass
RedHatベースのマシンがないので確認できませんが、検索してみるとわかる限りここ、Fedoraにインストールできる必要があります。
sudo yum install sshpass
インストールが完了したら、簡単に実行してください。
SSHPASS='password'
sshpass -e your commands
この-e
オプションはsshpass
変数からパスワードを取得するように指示しますSSHPASS
。これはオプションに引数として提供するよりも安全です-p
。
重要:
接続しようとしているサーバーが不明な場合、または公開鍵がコンピュータに保存されていない場合、この操作は失敗します。これがうまくいかない場合は、リモートシステムに一度(ssh
または)接続して公開鍵を受け入れます。scp
引用する