- PR -

シェルについて

1
投稿者投稿内容
たかはし
常連さん
会議室デビュー日: 2006/07/19
投稿数: 26
投稿日時: 2007-02-22 22:19
sshのkeyを作成するシェルで悩んでおります。
ssh-keygen -t rsa...................
ここで空エンターが必要になりますが、シェルで <Enter>を表現することは
可能でしょうか?

ssh-keygen -t rsa && ...........'パスワード'などという具合に
シェルが書ければと思います。ご伝授お願いいたします。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-22 22:44
とりあえずは、man ssh-keygen を見てみること。
なぜ入力が必要になるかと言えば、保存先ファイル名・パスフレーズを求められるため。
であれば、ファイル名を指定する -f や、パスフレーズを指定する -N を使えば良いと思いますが。
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2007-02-22 22:47
こんばんは

$ssh-keygen -t rsa -f [keyfile] -N [newpassphrase]

ではだめなの?

ググるまでもなく
このくらいの情報なら man ssh-keygen で出てきますが...
たかはし
常連さん
会議室デビュー日: 2006/07/19
投稿数: 26
投稿日時: 2007-02-23 21:17
説明不測で申し訳ございません。
コマンド自体は知っているのですが、これらを1つのシェルスクリプトで記述
しようと考えております。
そのため、<Enter>キーを打つという動作をコマンドで記述できればと、探しましたが
見当たりませんでした。

上記のスクリプトで記述してみようと思います。<Enter>にこだわりすぎておりました。ありがとうございました。

[ メッセージ編集済み 編集者: たかはし 編集日時 2007-02-23 21:19 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-23 21:54
引用:
そのため、<Enter>キーを打つという動作をコマンドで記述できればと、探しましたが見当たりませんでした。


場合によっては、改行を含んだデータをパイプなり、リダイレクトなりで流し込めば良いのですが…。
例えば、oracle の sqlplus で、
コード:
sqlplus scott/tiger <<_EOS_

delete from test_table where delete_flag = 1;
_EOS_


のように、通常プロンプトから入力する内容を、この場合ヒアドキュメントとして流し込むような例はあります。

しかし、今回は特に「パスフレーズの入力」というのがあり、これは単純にパイプやリダイレクトでは処理できません。なぜなら、プログラム側では tty による対話的な入力を求めているからです。
※ passwd コマンド ( --stdin オプションを使わない場合 ) もそうですね

これを自動化する場合には、expect なりの対話処理専用のスクリプトが必要になります。
※個人的には、tcl ベースの expect よりも、Perl の Expectモジュールとの方が好みですがね。

今回のようなプログラムでは、敢えて対話処理をする必要がないのですから、対話処理のことを考えない方が得策だと思います。


[ メッセージ編集済み 編集者: angel 編集日時 2007-02-23 21:57 ]
1

スキルアップ/キャリアアップ(JOB@IT)