マシンに SSH 接続中にファイルからパスワードを取得する

マシンに SSH 接続中にファイルからパスワードを取得する

リモート マシンに SSH 接続したいのですが、パスワードを入力する代わりに、別のファイルからリダイレクトしたいです。

password.txtパスワードを保存するファイルがあります。File.shこれは私の bash ファイルです。

File.sh

#!/bin/bash
ssh -T [email protected]

ファイルを実行中に、次の操作を実行しました。

./File.sh < password.txt

しかし、とにかくパスワードの入力を求められました。

ファイルから入力するパスワードを取得するにはどうすればよいですか?

答え1

'ファイル内のパスワード' を使用した SSH は、公開鍵認証としてよく使用されます。 を使用してキー ペアを作成しssh-keygen、公開鍵を他のホストにアップロードします。

scp ./.ssh/id_rsa.pub [email protected]:~/

次のように配置します~/.ssh/authorized_keys

ssh [email protected]
mkdir ~/.ssh
mv ~/id_rsa.pub ~/.ssh/authorized_keys

または、authorized_keysファイルがすでに存在する場合:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

適切な権限を設定します (ファイルの場合は 600、ディレクトリの場合は 700)。

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

新しい ssh セッションを開始します。

答え2

それには以下を使用できますsshpass:

sshpass -f password.txt ssh -T [email protected]

答え3

#!/usr/bin/expect -f
spawn ssh shw@hostname
expect -exact "shw@hostname's password: "
send -- "PASSWORD\r"
expect "$ "
interact

Expect はプロセスを自動化するツールです。

関連情報