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は、このプロセスを自動化するツールです。

関連情報