パスワードを使用してリモートユーザーアカウントにログインし、一連のコマンドを実行するにはどうすればよいですか?

パスワードを使用してリモートユーザーアカウントにログインし、一連のコマンドを実行するにはどうすればよいですか?

リモートコンピュータでコマンドを実行したいです。リモートユーザーはパスワード認証が必要です。次のサンプルスクリプトを使用すると、次のエラーが発生します。これはサンプルスクリプトapplmgr.shの内容です。

#!/bin/bash    
ssh [email protected] -c "cd ; touch testing ; cp testing testing_is ;mv testing 
working" <<!
applmgr      ## Password of applmgr user##
!

実行すると、次のメッセージが表示されます。

[oracle@dbsrvr ~]$ sh applmgr.sh
standard in must be a tty

答え1

スクリプトにパスワードを入力することは非常に間違ったセキュリティ慣行です。しかし、もしあなたが〜しなければならないその理由は、この目的のためにこのようなツールを使用できるためですsshpass

ただし、これらのタスクにはキーペア認証の使用を検討することをお勧めします。

ホストシステムにあり、a.example.com実行するジョブがある場合は、b.example.com次のコマンドを使用して設定できます。

  • ssh-keygen- 認証用の公開/秘密鍵ペアが生成されます。
  • ssh-copy-id [email protected]- リモートホストで使用する公開鍵を設定します。このコマンドを実行すると、パスワードの入力を求められますが、その後は認証にキーが使用されます。

その時点から、たとえばリモートホストで実行できます。ssh [email protected] 'command'command

答え2

expectアプリケーションと対話し、ユーザーの行動をシミュレートするために構築されたシステムであるコマンドを見てください。

(もちろん、パスワードを捨ててキーを使用することが本当の解決策です)

関連情報