web-dev-qa-db-ja.com

sshスクリプトでパスワードを送信する

一部のユーザー向けにsshconnectというスクリプトを作成しました。このスクリプトは、usertypesitenumberの2つの変数を取り、ユーザーがスクリプトを使用して、ユーザータイプを使用してそのサイト番号にSSH接続します。

たとえば、ユーザーは次のように入力します。sshconnect read@11を実行すると、ユーザーはユーザー名を読み取った状態でサイト番号11(IPアドレスにマップ)にSSHで接続できます。

ただし、これが発生すると、ユーザーはそのサイトに接続し、読み取ったユーザー名のパスワードを入力するように求められます。ただし、ユーザーが自分でパスワードを知ったり入力したりするのではなく、スクリプトにパスワードを送信させます。

スクリプトでパスワードを送信する方法はありますか?

ありがとう、ピーター

2
Peter Hayek

さまざまな可能性があります。 expectスクリプトまたは単純なsshpassを使用できますが、ユーザーがそこから読み取ることができるように、パスワードはスクリプト自体に書き込まれます(これはセキュリティではありません)。

要するに:

sshpass -p password ssh user@Host

より良い解決策は、キーペアを使用したパスワードなしの認証です。

つまり、新しいキーペアを作成し、サーバーに保存して、スクリプトに組み込みます。

ssh-keygen -t rsa -f key_file -P '' # prepare the key pair
ssh-copy-id user@Host               # enter the password once
ssh -i key_file user@Host           # logs in without password
2
Jakuje