ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

CygwinでSSH その1 パスワードで接続

2013-09-26 18:42:10 | ネットワーク
■ユースケース

VMWare上で、

  ゲストOSでLinuxを使って、SSHクライアントの実験をしている場合、
  ホストOS側にSSHサーバーを立てたいことは無いだろうか?

私はあった。こういうケース


VMWareの上に、RedHatEnterprise Linuxが乗っている。
  →このIPが、192.168.19.129とかいうのが振られている。

このVMWareを載せているOSは、WindowsXP
  →このIPは、192.168.1.10とかいうもの

192.168.19.XXというIPのパケットは、このマシンの外には出したくない。
なので、このパソコン上で、SSHの接続試験をしたい。
ただし、Windows上にフリーソフトのsshは入れたくない(セキュリティ上)




■お題

ってことで、

VMWareの上に、RedHatEnterprise Linuxから、SSHコマンドを発行するので、
VMWareを載せているWindowsXPに、Cygwinを走らせて、そこで、sshdを動かしてくれ。

まずは、パスワード認証でいいや。

っていうことを、Cygwinのインストールから考えてみたい。

なお、今回の環境はWindowsXP
(Vista,7では、管理者モードで実行しないと、うまく行かないようです。)

また、Cygwinが走っているWindowsXPのIPを192.168.1.10とする




■手順

・Cygwinのopen-sshを手に入れる
    ・Cygwin(http://www.cygwin.com/)にいって、
    ・setup.exeをダウンロード、
    ・それを実行して、open-ssh関係をインストール

 詳しくは、以下を参照

Cygwin上のOpenSSHのインストール
https://sites.google.com/site/himazu/ssh-on-cygwin#TOC-Cygwin-OpenSSH-1


・インストールが終わったら、Cygwinを立ち上げる
  →Vista,7の人は、ここで管理者モードで・・・

・ssh-host-config を実行する
 適当にyesとか答えておけばいいみたい・・・

・cygrunsrv -S sshd を実行して、sshdを立ち上げる

・ここで、RedHatEnterprise Linuxから、SSHコマンドを発行

  ssh 192.168.1.10

 とうぜん、パスワードもなにもわからないので、失敗するのだが、
 このとき、ログイン名に誰が出てきたかをチェック
 (たぶん、Cygwinでwhoで出てくる人と同じはず。以降、その前提で話を進める)

・Cygwinに戻り、/etc/passwdをみる。上記ログイン名の人がいるはず。
 パスワードはunusedになっている。そこで、Cygwinから

  passwd

 を実行して、パスワードを振る。

・再度、RedHatEnterprise Linuxから、SSHコマンドを発行

  ssh 192.168.1.10

 今振ったパスワードを入れれば、Cygwin側に入れるはず!

注意

ここまでの操作を行い、翌日パソコンを立ち上げなおしたら、パソコンの
パスワードが、passwdで入れたパスワードに変わってた(@_@!)
そー言うものなの?


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

デザイナーの上流工程進出のほうが、オフショアよりも開発上、インパクトがある

2013-09-26 12:51:07 | Weblog
最近、Web系では、デザイナーさんに、画面を依頼することが増えてきた気がします。
昔は、ホームページやそれに付随する部分だけだったのですが、
いまでは、純粋にイントラネット(私語 ^^;)のような、業務系でも
画面周りを作ってもらうことが、あったり、なかったりです。

まあ、仕上がりはきれいですよね。いっぱつで判ります。

とはいえ、現状では、ユーザーインターフェース設計で、ある程度固まったとき、
HTMLによる、画面作成というかんじではないでしょうか?




ただ、今後、AJAXとJQueryが画面系で中心になってくると、この状況は
変わってくるんじゃないかと思います。
JQueryなら、AJAXが使えます。

とすると、
  JQueryを利用し、
  サーバーはダミーデータを返すようにして、
  有る程度、画面まわりは出来てしまいます。

だったら、アジャイル開発においては、デザイナーさんに早く入ってもらって、

  ・デザインコンセプトを聞いて、プロトタイプをつくってもらう
  ・プロトタイプから画面周りを作ってもらい、確認する
  ・基本AJAXでやることにして、画面部分のソースも作ってもらう

とすると、開発はあとは、画面からデータを受け取って、処理して返す部分、
すなわち、モデル・サービス(SOA?)に専念できます。

デザイナーさんは、今はユーザーインターフェースだけですが、アジャイルで
UIが中心になってくると、上流から、下流まで幅広く入ってくるのではないでしょうか?

その上、デザイナーさんのほうが、単価は安い。




これはたぶん、オフショアよりも、インパクト大です!
オフショアは、主に下流です。
  日本語が通じないインドの人、中国の人が、
  日本語しかしゃべれないお客さんの要求仕様をまとめるというのは、
ちょっと考えにくいです。

でも、
  プログラムはかけないけど、デザインができるデザイナーさんと
  デザインがうまく表現できないお客さんが
    要求仕様をまとめる可能性はあります。
    っていうか、プロトタイプ作って、
    そっちのほうが、今より楽しそうです。

となってくると、デザイナーさんは、要求仕様ぐらいまで、入ってくる可能性大
そうなると、要求仕様をまとめるSEさん、アナリストさんの単価が下がる・・・

デザイナーの上流工程進出のほうが、オフショアよりも開発上、インパクトがあると思いますね!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

AJAXを使わずSubmitで、画面遷移なしにサーバアクセスする-ファイルアップロード等で使う

2013-09-26 09:52:58 | JavaとWeb
サーバーアクセスする場合、
  画面遷移させてよいなら、Submitが使える
  画面遷移させない場合は、AJAXを使う。

 だけど、ファイルアップロードなどでは、inputタグのタイプfileで指定した、ファイルの内容はみれない(セキュリティの都合らしい)。ということは、AJAXでは送れない。

 このようなケースのほかに、submitしちゃいたい(データいっぱいあるし・・・)だけど、画面遷移はしたくない!というときがある。

 このようなとき、どうするか・・・



画面遷移なしでファイルアップロードする方法
http://blog.joyfullife.jp/archives/2007/04/17134117.php

というサイトに書いてあるけど、要するに

・IFRAME で、NAME="名前"で名前をつけて、style="display:none"のタグを書く
・formタグの属性にtarget="名前" と、IFRAMEのNAMEで書いたものをターゲット名として書く
・そうすると、submitされたとき、サーバーから帰ってきた値は、非表示のIFRAMEに
 展開されるので、見えない
  →画面遷移なしで、サーバーにアクセスできる。




しかし、サーバーアクセスしたあとで、処理結果が聞きたい場合がある。
そうする場合はどうするか・・・

さっきのつづき

・サーバー側のファイルは、JQueryで、document.readyしたときに、
 親側(IFRAMEの親、すなわちsubmitした画面)の関数を呼び出す。
 親側に渡したい値は、その関数の引数として渡す

・親側は、その関数を実行させられるので、そこで、適当に処理する。




■サンプル

こんなかんじ。

親側のプログラム(oya.htm)
<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>

<script>
function myalert(buf)
{
	alert(buf);
}

</script>
</head>
<body>

<form name="f1" id="f1" action="ko.htm" method="post" target="nodisp">
入力項目<INPUT TYPE="text" NAME="arg1"/>
<INPUT TYPE="SUBMIT" value="実行" />
</form>

<IFRAME NAME="nodisp" id="naiyo"  style="display:none"></IFRAME>
</body>
</html>



入力項目の実行が実行されると、サーバー側に行く。
そして、サーバー側で処理した結果は、IFRAMEのNAME nodispにセットされる。
  →display:noneなので見えない

サーバーの結果は、こんなかんじ

<!doctype html>
<HTML>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"

type="text/javascript"></script>

<script>
$(function(){
parent.myalert("このデータを親へ");
});
</script>

<body>

やっほ~

</body>
</html>


JQueryで、document.readyしたとき($(function(){ の中)
parent.myalert();を実行する。
この場合、IFRAMEの親、つまり上記oya.htmのmyalertを
実行する。
親に渡したい値は、引数にしてある。
上記の例の場合”このデータを親へ”というのが渡すデータ

親側では、この引数の値を見て、エラー処理や正常系処理を行う。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする