
リモート マシンに 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 はプロセスを自動化するツールです。