11

まず第一に、このトピックに関して多くの質問があることを私はよく知っています。私はそれらを読みましたが、それでも私の状況に適した答えを見つけることができました.

シェルスクリプトを使用して、ローカルから学校のホームディレクトリまでのディレクトリscp全体を作成したいと思います。~/cs###/assign1私の質問は、スクリプトでパスワード プロンプトを待機し、キーボード イベントをシミュレートしてパスワードを「入力」する方法はありますか?


これは、キーを設定する方法の非常に詳細なガイドです

4

12 に答える 12

15

「sshpass」を使おう!

#!/bin/bash
sshpass -p "password" scp -r /some/local/path user@example.com:/some/remote/path
于 2012-12-19T15:20:21.503 に答える
11

ssh キーは許可されていませんか? それはより良い解決策でしょう。

于 2009-09-22T20:08:15.017 に答える
4

そう簡単にはできないと思います。できることは、代わりに公開鍵認証を使用することです。

これらの線に沿った何か

ssh-keygen -t rsa
ssh school mkdir .ssh/
cat ~/.ssh/id_rsa.pub | ssh school "cat >>.ssh/authorized_keys"

(またはdsa)。

でもねえ、それはサーバーフォールトじゃないよね?;-)

于 2009-09-22T20:08:22.290 に答える
4

キーまたは外部ライブラリの使用を検討してください。

それ以外の方法では可能だとは思いません (私が間違っていないことを願っています)。自動的にブルート フォースによる侵入とパスワードのスニッフィングが行われるからです。

libsshなど、必要なことを実行できるライブラリがあります (scp を呼び出さずに SFTP プロトコルを使用します) 。

繰り返しますが、キーを強くお勧めします。

于 2009-09-22T20:10:50.117 に答える
3

キーを使用することに同意します。ただし、パスワードをプレーンテキストのスクリプトファイルにハードコーディングする場合は、 expectがプロセスのインタラクティブな側面を自動化できます。

于 2009-09-22T20:53:46.353 に答える
2

このようなもの - http://code.google.com/p/enchanter/ ?

于 2009-09-22T20:14:00.303 に答える
1

家庭や学校でどのプラットフォームを使用しているかはわかりません。Linux、Cygwin、または OS/X を想定すると、いくつかのオプションがあります。

  1. サーバーでオフになっていない場合の公開鍵認証
  2. ssh-agent および ssh-add を使用して、セッションごとに 1 回パスワードを入力します

オプション (1) の場合、

  1. ssh-keygen を使用して自宅で鍵ペアを生成します。秘密鍵にパスフレーズはありません。他の人が同じコンピューターを使用している場合、パスフレーズを省略することはおそらく良い考えではありませんが、あなたの目的はパスワードを入力する必要を回避することでした。
  2. PUBLIC キーを学校のアカウントにアップロードし、~/.ssh/authorized_keys に配置します。
  3. 「-i identityfile」オプションを指定して scp を使用します。ここで、identityfile は秘密鍵へのフル パスです。または、.ssh/config にエントリを追加します (man ページを参照してください)。

2 番目のオプションでは、ssh-agent を使用すると、セッションごとに 1 回ローカル プロセスにパスワードをキャッシュできます。有効期限を設定します

于 2009-09-22T20:21:25.073 に答える
0

多くの人がすでに言っているように、ssh キーを使用することが最も安全で最善の方法です。他の誰かがまだ疑問に思っていて、ヘルプを探している場合、Ubuntu ヘルプには、ssh キーを使用するための迅速かつ簡単な方法があります。

于 2015-10-13T23:21:51.360 に答える
0

Windows マシンからディレクトリをマウントできる場合 (たとえば、私の大学の Windows ラボがすべて行った AFS、NFS、または SMB 経由)、- pw スイッチを指定してpscpを使用できます。

于 2009-09-22T20:11:15.890 に答える
0

「-r」オプションを使用して再帰的にコピーしないのはなぜですか? または、代わりに rsync を使用しますか?

実際のユーザー アカウントを持っている限り、公開鍵認証を使用することもできます。これを見る

于 2009-09-22T20:11:21.990 に答える