MY PIANOS
CALENDAR
S M T W T F S
   1234
567891011
12131415161718
19202122232425
2627282930  
<< April 2020 >>
ARCHIVES
CATEGORIES
MOBILE
qrcode
<< Windowsクライアントから、Linuxサーバーにファイルを送り込む 選定の巻 | main | MacBookAir 11inch Mid2012のSSDを交換する >>
Windowsクライアントから、Linuxサーバーにファイルを送り込む 実証の巻
昨日からの続きです…

Windowsクライアントから、Linuxサーバーにファイルを送り込む設定はこんな感じ、というお話です。

PuTTyを使う事にしたので、まずはダウンロードしなくてはなりません。PuTTyの本家は、ここ
http://www.chiark.greenend.org.uk/~sgtatham/putty/
ダウンロードはここで、
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
それぞれのプログラムをexeファイルで配布しているところを見ると、インストーラーは必要なさそうなので、ZIPで固めたパッケージを落とすことにします。

注;PuTTyには、日本語サポートなどの派生バージョンが有るみたいですが、本家が一番、と言うのは、僕の個人的な考え方…特に日本語が通らない、ってわけでもないでしょうし…なのであしからず。


putty.zip を落として、解凍すると、いっぱいファイルが出てくるのですが、名前からすると、この2つがあればなんとかなりそうです…
PUTTYGEN.EXE : 暗号化キーを作るツール…これはGUI版でした。
PSCP.EXE   : 実際にサーバーにコピーするプログラム

ほかは要らないだろうとは言え、ひとまず任意のフォルダーに解凍したファイルたちを移動してから、そのフォルダー(パス)を、PATH環境変数に登録する事にしました。
本来、バッチファイルに記述するときは、フルパスを書けば良いわけだけど、今のところは、Dos窓から色々と試験したいので、それでは面倒なので…
 PATH環境変数の変更は、また別の機会に…


まず、PUTTYGEN.EXE を起動して、
・「SSH2-RSA」 にチェックを入れ
・「Number of bits in generated key:」に、「2048」を入力して
・「Generate」ボタン押下

この生成中の画面上半分のところで、マウスを動かし続けると、ほどなく暗号化キーの作成が終わります。マウスを動かし続けないと、生成作業が進まないので、このプログラムは、マウスの移動軌跡値を利用して、暗号化キーを生成しているらしいです…こんな方法もあったんだなぁ〜、って。^^;
ちなみに、Bit数を2048にするのは、Linux系OpenSSHで ssh-keygen は、デフォルトで2048だったはずなのと、2048あれば十分である、と言われているからで、それ以上の根拠はありません。

生成し終わると…

この画面になったら、中程の
・「Key passphrase: 」
・「Comfirm passphrase: 」
の2つを任意の文字列で埋めます。要するに、この公開鍵セットのパスワード。実際にログインする際のパスワードとは異なるものを設定するのが良いでしょう。

で、「Save Public Key」「Save private Key」のそれぞれのボタンで、キーファイルセットを保存するわけです。
今回は、公開鍵ファイルを、PuTTy.pub
    秘密鍵ファイルを、PuTTy.ppk としました。
Dos窓を起動して、保存したフォルダーに移動して、出来上がった公開鍵ファイルをサーバーに転送するコマンド
C:¥PuTTy¥.ssh>pscp -P 22 -l moto_chor -pw xyxyxyxyxy PuTTy.pub MyLinux.Com:./

を、実行します。
・-l moto_chor は、サーバー上の自分のID
・-pw xyxyxyxyxy は、そのパスワード
・MyLinux.Comは、サーバーのURL(なければIPアドレス)
・./ は、転送先のフォルダ指定なので、自分の環境にあわせて…
・-P 22 SSHのポート番号です。デフォルトは22なので、本来は指定しなくても良いです。
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y
PuTTy.pub | 0 kB | 0.5 kB/s | ETA: 00:00:00 | 100%

C:¥PuTTy¥.ssh>

と、転送が完了します。
初めての転送先の場合、こんな風に、何かしら聞いてきますがYで答えないと完了しませんので…よく読んでみたら、やっぱりやめたくてもです。

転送サーバーの中を見てみると…
moto_chor@MyLinux:~$ ls -al PuTTy.pub
-rw-r--r-- 1 moto_chor moto_chor 464 2012-11-01 18:08 PuTTy.pub
moto_chor@MyLinux:~$

さて、ここからはおまじない…
PuTTyで作り上げた公開鍵ファイルは、Linux標準のOpenSSHでは使えないので、フォーマットを変換します。
$ ssh-keygen -i -f PuTTy.pub >> .ssh/authorized_keys

この例では変換ついでに、OpenSSH のAutholizedKeyファイルに追加しちゃってます…
注;初めてで.ssh フォルダが無いなら、mkdirで作って、パーミッションを700に (chmod 700 .ssh) …次に上のコマンドを実行して…authorized_keysファイルができたら、authorized_keysのパーミッションは600 (chmod 600 .ssh/authorized_keys) にしておきます。
$ chmod 700 .ssh
$ ssh-keygen -i -f PuTTy.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
な感じになります。


さて、クライアントに戻って、暗号化キーセットを使って、ファイルを転送して見ましょう。
C:¥PuTTy>pscp -P 22 -i PuTTy.ppk -l moto_chor -pw xxxxxxxx PUTTY.* MyLinux.Com:./
PUTTY.CHM        | 436 kB | 436.5 kB/s | ETA: 00:00:00 | 100%
PUTTY.CNT        | 31 kB | 31.3 kB/s | ETA: 00:00:00 | 100%
PUTTY.EXE        | 472 kB | 472.0 kB/s | ETA: 00:00:00 | 100%
PUTTY.HLP        | 641 kB | 641.9 kB/s | ETA: 00:00:00 | 100%
C:¥PuTTy>

コマンドの、
・-i PuTTy.ppk は、パブリックキーファイルを指定しています。
・-l moto_chor は、先ほどと同じサーバー上のIDです。
・-pw xxxxxxxx は、PUTTYGEN.EXEでパブリックキーファイルを作った時に指定した passphrase を指定します。
・-P 22 SSHのポート番号です。デフォルトは22なので、本来は指定しなくても良いです。

ここで、せっかく公開鍵ペアによる認証を実現したわけですから、Linux側で本当にちゃんと認証されているのかチェックしておきましょう。
$ tail /var/log/auth.log
MyLinux sshd[4637]: Accepted publickey for moto_chor from 153.137.55.211 port 44853 ssh2
MyLinux sshd[4637]: pam_unix(sshd:session): session opened for user moto_chor by (uid=0)
MyLinux sshd[4707]: subsystem request for sftp
MyLinux sshd[4637]: pam_unix(sshd:session): session closed for user moto_chor
$

良いようです。

これでかなり安心してファイル転送ができるようになりましたし、将来的なサーバーセキュリティとして、パスワード認証の禁止、使えるようになった訳です。(^^ゞ
 
 
ちなみに、今回のこの実験環境は…クライアント、サーバーともにMacBookAir上でParallesDesktop8でそれぞれの環境を作成。
・クライアント:Windows7 Home
・サーバー:Ubuntu Server 64bit 12.04.1 / 10.04.4
| Tech_Server | 12:43 | comments(0) | - | pookmark |
コメント
コメントする