2台のリモートコンピュータがあり、そのうちの1つでスクリプトを実行しています。
スクリプトの一部は別の部分で実行する必要があり、その後スクリプトは追加のタスク/コマンドを実行し続けます。
何らかの理由でssh-without-password
接続できず、パスワードプロンプトが表示されることも望ましくありません。
注:私はそれらの間でマウントを共有しました。
答え1
SSHパスワードプロンプトを避けてください。
sudo apt-get install sshpass
パッケージをインストールするための代替ツールは次のとおりです。dpkg
そしてインストールしてください:
sudo dpkg -i sshpass_1.04-1_amd64.deb
使用パターンは次のとおりです。
sshpass -p mypassword ssh user@server
sudo
パスワードプロンプトを避ける必要がある場合:
ssh [email protected] "echo sudo_password | sudo -S ./script.sh"
最後の説明は次のとおりです。 sshの後に実行すると、リモートサーバーにパスワードを入力しないため、sudo
解決策は-Sを使用して上記のようにパスワードをsudoにパイプすることです。sudo
答え2
パスワードなしでログインするには、パスワードを作成する必要がありますSSH Keygen
。
このトピックとその実行方法の詳細については、次を参照してください。
答え3
a.まず、ユーザaとしてAにログインし、認証鍵ペアを生成します。
b。ここで、sshを使用してBにユーザーbとして〜/ .sshディレクトリを作成します。 (ディレクトリはすでに存在する可能性がありますが、大丈夫です。)
ssh b@B mkdir -p .ssh
b@Bのパスワード
氏。最後に、aの新しい公開鍵をb@B:.ssh/authorized_keysに追加し、最後にbのパスワードを入力します。
cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b @ Bのパスワード:d。 ssh b @ B Bサーバーのパスワードを入力する必要はありません。