一部のユーザー向けにsshconnect
というスクリプトを作成しました。このスクリプトは、usertype
とsitenumber
の2つの変数を取り、ユーザーがスクリプトを使用して、ユーザータイプを使用してそのサイト番号にSSH接続します。
たとえば、ユーザーは次のように入力します。sshconnect read@11
を実行すると、ユーザーはユーザー名を読み取った状態でサイト番号11(IPアドレスにマップ)にSSHで接続できます。
ただし、これが発生すると、ユーザーはそのサイトに接続し、読み取ったユーザー名のパスワードを入力するように求められます。ただし、ユーザーが自分でパスワードを知ったり入力したりするのではなく、スクリプトにパスワードを送信させます。
スクリプトでパスワードを送信する方法はありますか?
ありがとう、ピーター
さまざまな可能性があります。 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