複数のウィンドウにパスワードを入力するには?

複数のウィンドウにパスワードを入力するには?

私の放浪者コンピュータを起動し、複数の端末を開き、新しく開いた各端末でSSHを介して放浪者コンピュータに接続するスクリプトがあります。私の問題は、端末が5つほど必要ですが、各端末のパスワードを手動で入力したくないということです。デフォルトの端末で一度だけパスワードを入力し、sshコマンドで同じパスワードを使用する方法はありますか?

#!/bin/bash
cd /home/kkri/public_html/freitag/vagrant
vagrant up
for run in $(seq 1 $1)
 do
  gnome-terminal --window-with-profile=dark -e "ssh vagrant@localhost -p 2222" --$
 done
gnome-terminal --window-with-profile=git          
clear
echo "~~~ Have fun! ~~~"

ベストアンサー1

一般的に言うと(放浪者や他のシステム関連の詳細は無視されます)、最善の方法はSSHキーを使用して認証を設定し、次のssh-agentコマンドを使用してSSHセッションを開くことです。

# load the key to the agent with a 10 s timeout
# this asks for the key passphrase
ssh-add -t10  ~/.ssh/id_rsa  
for x in 1 2 3 ; do 
    ssh .... 
done

または、鍵にアクセスできない場合は、鍵を使用して何かを組み立てることができますsshpass

read -p "Enter password: " -s SSHPASS ; echo
for x in 1 2 3 ; do 
    sshpass -e ssh ...
done
unset SSHPASS

これにより、端末が途中にあっても端末環境のパスワード設定が維持されます。この問題を解決するには、パスワードをファイルに一時的に保存できます。

read -p "Enter password: " -s SSHPASS ; echo
PWFILE=~/.ssh/secret_password
cat <<< "$SSHPASS" > "$PWFILE"
unset SSHPASS
for x in 1 2 3 ; do 
    sshpass -f "$PWFILE" ssh ...
done
shred --remove "$PWFILE"

パスワードがディスクに入力され、キーがより良くなる可能性があるため、まだ最善の選択肢ではありません。

おすすめ記事