LinuxマシンからリモートUnixサーバー上でスクリプトを転送/実行する方法


0

パスワードを手動で入力せずに、LinuxからリモートUNIXマシン(Linux / Solaris)で実行可能ファイルを展開して実行しようとしています。

scpとSSH key-genユーティリティを使ってリモートサーバーとやり取りしようとしましたが、いずれにしてもパスワードを手動で提供することを避けられませんでした。このコマンド/ユーティリティをJavaコードから実行する必要があるため、実行時にパスワードの入力を完全に避ける必要があります。私はGoogleで多くのトピックを経験しましたが、何も実現していません。

これどうやってするの?

回答:


1

を使用して生成したことを既に述べたように、公開/秘密キーペアを使用して認証を設定する必要がありますssh-keygen。自動化されたスクリプトで使用する必要がある場合は、秘密鍵のパスワードなしで生成してください。ここでssh-copy-id name@host、リモート側で正しく設定するために使用して公開キーをコピーします(公開キーを認証します)。

このようなチュートリアルに従うことをお勧めします。

動作する場合sshは、scp同様に動作します。

正しく設定した後、対話なしでこれを行うことができるはずです。

scp myscript.sh name@remotehost:~/
ssh name@remotehost ~/myscript.sh

パスワードやパスフレーズを入力する必要がないように、いくつかの選択肢があります

  • 認証エージェントを使用して、秘密鍵のパスワード/パスフレーズを保持します
  • 秘密鍵を保護するためにパスフレーズを使用しないでください

前者はインタラクティブな使用に適していますが、後者は安全性が低くなります。おそらく、これに対して新しいユーザーIDを設定し、遠端で最小限の権限を設定する必要があります(例:chrooted)


あなたは私を打ち負かした。私の(今は削除された)回答をあなたのものにマージします。反対する場合は元に戻してください。
RedGrittyBrick


0

ステップ0。リモートマシンへのsshアクセスが必要です。

手順1. ssh-keygenLinuxボックスでRSA秘密/公開キーペアを生成し、どこかに配置します(たとえば、/ root / identities)。パスフレーズを提供しません。

ステップ2。 ssh-copy-id -i /root/identities/your.key user@remotemachine.tld

ステップ3.これで終わりです。これssh -i /root/identities/your.key user@remotemachine your_commandで、パスワードが要求されなくなります。確かに、あなたPubkeyAuthentication = yesはリモートマシンにいる必要がありますsshd_config

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.