質問

を使用しようとすると、 ssh シェルスクリプト内のコマンドの場合、コマンドはそこに存在するだけです。使い方の例はありますか ssh シェルスクリプトで?

役に立ちましたか?

解決

何をしたいか、どのように使用するかによって異なります。別のマシン上でコマンドをリモートで安全に実行したいだけの場合は、次のようにしてください。

ssh user@host command

例えば

ssh user@host ls

これを安全に行うには、実行時にユーザーにパスワードを尋ねるか、リモート ホストにキーを設定する必要があります。

他のヒント

まず、パスワードなし (公開キー ログイン) が設定されていることを確認する必要があります。ssh には、構成ファイル形式がわずかに異なる少なくとも 2 つの種類があります。チェックしてください ssh システム上のマンページを確認するには、ローカルのシステム管理者に相談するか、次のサイトにアクセスしてください。 公開鍵認証を設定するにはどうすればよいですか?.

走る ssh バッチ モード (シェル スクリプト内など) では、実行したいコマンドを渡す必要があります。構文は次のとおりです。

ssh host command

複数のコマンドを同時に実行する場合は、引用符とセミコロンを使用します。

ssh host "command1; command2"

引用符は、セミコロンをシェル インタプリタから保護するために必要です。これらを省略した場合、最初のコマンドのみがリモートで実行され、残りはすべてローカル マシンで実行されます。

使用できます expect ユーザー名/パスワード情報を入力するコマンド。

SSH 公開キーを ~/.ssh/authorized_keys リモートホスト上のファイル。そうすれば、パスワードなしでそのホストに SSH 接続できるようになります。

あるいは、次のように使用することもできます ssh-agent. 。スクリプトにパスワードを保存しないことをお勧めします。

最も簡単な方法は、スクリプトを実行するユーザーの証明書を使用することです。

より複雑なものは、シェルコマンドがパスワードを要求したときに標準入力にパスワードを追加することを意味します。Perl ライブラリでは、(少なくとも対話型であれば) パスワードを尋ねるプロンプトをユーザーに表示する必要があり、選択肢はたくさんあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top