自宅サーバ構築MY HOME SERVER
クライアントから遠隔操作(ssh) クライアントPC側の設定 SSH公開鍵・秘密鍵作成 |
- クライアントから遠隔操作(ssh) -
サーバ自身のコンソールで操作するのはここまでにします。クライアントPCから遠隔操作できるように 設定します。クライアント側で操作出来ると、サンプル設定画面を見ながら入力したり、コピー内容を 貼り付けたり出来るので、作業効率がダントツにアップします。
SSHサーバは既にインストール済みです。使用出来るように設定します。
[root@hoge123~]# vi /etc/ssh/sshd_config #PermitRootLogin yes ↓ 以下の内容に変更します。# の削除も忘れないでください(管理者ログインを禁止します) PermitRootLogin no #PermitEmptyPasswords no ↓ 先頭の#を削除します。 PermitEmptyPasswords no |
設定を編集・保存したので、その値を有効にするためSSHを再起動します。
[root@hoge123~]# /etc/rc.d/init.d/sshd restart ← /etc/rc.d/init.d/はsshdがある場所のパスです。 sshd を停止中: [ OK ] sshd を起動中: [ OK ] [root@hoge123~]# chkconfig sshd on ↑ サーバの再起動があってもsshdサービスが自動で有効になるように設定します。 [root@hoge123~]# chkconfig --list sshd sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ↑ 2〜5が on になっていれば大丈夫です。 |
クライアントPCからログインするユーザ名、パスワードを作成します。セキュリティーを考慮して 管理者権限ではログイン出来ないようにしています。ユーザ名は任意で決めます。入力したら Enterキーを押します。
※ユーザ名、パスワードはクライアントPC側で必要な情報ですので忘れないでください。
[root@hoge123~]# useradd hogehoge ← hogehogeと言うユーザを追加します。 [root@hoge123~]# passwd hogehoge ← hogehogeにパスワードを追加します。 Changing password for user hogehoge. New password: ← パスワードを入力します。 Retype new password: ← 確認のためにもう一度入力します。 passwd: all authentication tokens updated successfully. [root@hoge123~]# cd /home ← homeディレクトリに新規ユーザ追加されているか、確認します。 [root@hoge123 home]# ls ← lsコマンドでhomeディレクトリ内に、hogehogeがあることを確認します。 hogehoge [root@hoge123 home]# |
クライアントから遠隔操作する際、サーバ側はroot権限からログアウトさせておきます。(セキュリティのため)
[root@hoge123~]# exit ← exit コマンドでrootからログアウトします。 logout CentOS release 6.3 (Final) Kernel 2.6.32-220.e16.i686 on an i686 hoge123 login: |
- クライアントPC側の設定 -
クライアントPCはWin2000、WinXP、Vista、Win7のいづれでも構いません。 まずは、遠隔操作ソフトTeraTermProをインストールします。
ダウンロードサイト: Tera Term 4.73
インストールが終わったら、デスクトップのショートカットをクリックします。ホストにサーバのIPアドレスを入力てOKボタンを押します。
初回のみセキュリティ警告が出ますが、「続行」ボタンを押します。
ユーザ名、パスワード(パスフレーズ)を入力してOKボタンを押します。(先ほどの例ではhogehogeがユーザ名です)
ログインが成功すると、以下の画面になります。ユーザ名hogehogeでログイン出来たところです。リモート操作で設定する場合、 管理者権限でログインする必要があるため、rootに切り替えます。
Last login: Sun Apr 3 20:35:53 2012 from 192.168.0.20 [hogehoge@hoge123 ~]$ su - ← su - はroot(管理者)ログインするためのコマンドです。 パスワード: ← rootのパスワードを入力します。(何も表示されません) [root@hoge123~]# ← hogehogeからrootに変わりました。 |
管理者のパスワード入力欄が文字化けしている場合は、TereTermの設定を変更する必要があります。
Last login: Sun Apr 3 20:35:53 2012 from 192.168.0.20 [hogehoge@hoge123 ~]$ su - ← su - はroot(管理者)ログインするためのコマンドです。 窿鴻ヮ: ← 文字化けしています。(一応、パスワード入力でログインは出来ます。) [root@hoge123~]# ← hogehogeからrootに変わりました。 |
Tera Term のメニューから「端末」を選択します。
「漢字-受信(K)」と 「漢字-送信(J)」がEUCになっています。両方ともプールダウンメニューからUTF-8に変更します。
UFT-8に変更したら、「OK」ボタンを押します。これで、文字化けは解消されます。
次回、ログイン時に文字化けしないように、設定を保存します。メニューバーの「設定」、「設定の保存」を選択します。
設定を保存します。
遠隔操作を終了するときはexitコマンドを使います。
[root@hoge123~]# exit ← rootからログアウトします。 [hogehoge@hoge123 ~]$ exit ← hogehogeからログアウトして、画面が消えます。 |
Tera Term を使用すると、viエディタを起動したとき、サンプル設定の内容等をコピーして貼り付けることが出来ます。 まずパソコン上の貼り付けたいテキスト文章をマウス操作でコピーします。viエディタに戻り、 i キー入力して編集モードにします。 画面右下にINSERTが表示されます。この状態で、Alt キーと V キーを押して貼り付けます。Esc キーを押すと編集モードから 抜けることが出来ます。貼り付けるとき、全角スペースや全角文字が無いように気をつけます。エラーの原因になります。
尚、ルータのポート22番を開放すると外部ドメインからサーバを遠隔操作できます。その際、ホストは取得したドメイン名を入力
することになります。SSHは暗号化通信のため、通信内容は簡単に解読されることはありません。
しかし、今の状態では22番ポート
を開放すると、パスワードさえわかれば誰でもサーバにログインできてしまいます。そのため公開鍵、秘密鍵を作成してセキュリティ
を一層強化する必要があります。22番ポート開放はあくまで外部ドメインからリモート操作が必要なときに行います。必要がなくなったら
ルータ側の22番ポートは閉じてください。
尚、ルータのポート開放の仕方は、
ウエブ上で検索すると、たくさん情報が出てきます。一応、このサイトでもルータのポート開放の
手順を説明しています。
- SSH公開鍵・秘密鍵作成 -
ここではすでにSSH接続が出来ていることを仮定して説明します。サーバで公開鍵と秘密鍵を作成し、秘密鍵をクライアントパソコン
に取り込みます。これにより秘密鍵を持っているクライアントパソコン以外、サーバの遠隔操作が出来なくなります。万が一、パスワード
が第3者に漏れても、秘密鍵がない限り第3者はサーバにSSH接続できません。
サーバ側で作成した秘密鍵は、フロッピーディスクやUSBフラッシュメモリー、ローカルネットワーク内のFTP転送でクライアントパソコンに
渡します。
FTP転送のためにiptablesのポート21番を開放するか、無効にする必要があります。
詳細はセキュリティをご覧ください。
[root@hoge123~]# vi /etc/ssh/sshd_config 先頭の#を削除して yes を noに変更します。(通常パスワードの禁止(鍵方式に変更)) #PasswordAuthentication yes ↓ PasswordAuthentication no 先頭の#を削除します。(空パスワードの禁止) #PermitEmptyPasswords no ↓ PermitEmptyPasswords no |
次に鍵を作成するユーザーになります。
[root@hoge123~]# whoami root ← root権限でログインしています。 [root@hoge123~]# su - hogehoge [hogehoge@hoge123~]# ← ユーザー hogehoge に変わりました。 [root@hoge123~]# exit ← exit コマンドでもroot権限から、ユーザー権限に戻れます。 logout [hogehoge@hoge123~]$ |
hogehoge ユーザー権限で鍵を作成します。
[hogehoge@hoge123~]# ssh-keygen -t dsa Generating public/private rsa key pair. Enter file in which to save the key (/home/hogehoge/.ssh/id_dsa): Created directory '/home/hogehoge/.ssh'. ← 何も入力しないでEnter キーを押します。 Enter passphrase (empty for no passphrase): ↑ パスフレーズ(SSHのパスワード)入力します。hogehogeのログインPWと同じほうが混乱しません。 Enter same passphrase again:← パスフレーズの再入力をします。(上記で入力したもの) Your identification has been saved in /home/hogehoge/.ssh/id_dsa. Your public key has been saved in /home/hogehoge/.ssh/id_dsa.pub. The key fingerprint is: 5t:d4:33:67:g4:21:06:cb:24:40:d3:6b:2w:3c:3c:10 hogehoge@hoge123.ddo.jp The key's randomart image is: +--[ RSA 2048]----+ | .+...o . | | .+.o . .| | *=. o o| | BoE + | | S o . +| | . . o o | | . + | | . | | | +-----------------+ 鍵の作成先の確認をします。 [hogehoge@hoge123~]# ls -la .ssh 合計 16 drwx------. 2 hogehoge hogehoge 4096 6月 8 19:34 2012 . drwx------. 3 hogehoge hogehoge 4096 6月 8 19:34 2012 .. -rw-------. 1 hogehoge hogehoge 1751 6月 8 19:34 2012 id_dsa ← 秘密鍵 -rw-r--r--. 1 hogehoge hogehoge 405 6月 8 19:34 2012 id_dsa.pub ← 公開鍵 公開鍵をauthorized_keysに追加します。 [hogehoge@hoge123~]# cat /home/hogehoge/.ssh/id_dsa.pub >> /home /hogehoge/.ssh/authorized_keys ← 上の行の続きです。実際は1行で入力します。 公開鍵を自分のみアクセスできるように変更します。 [hogehoge@hoge123~]# chmod 600 /home/hogehoge/.ssh/authorized_keys 公開鍵の削除をします。 [hogehoge@hoge123~]# rm -f /home/hogehoge/.ssh/id_dsa.pub 鍵の作成先の確認をします。 [hogehoge@hoge123~]# ls -la .ssh 合計 16 drwx------. 2 hogehoge hogehoge 4096 6月 8 19:34 2012 . drwx------. 3 hogehoge hogehoge 4096 6月 8 19:34 2012 .. -rw-------. 1 hogehoge hogehoge 1751 6月 8 19:34 2012 id_dsa ← 秘密鍵 -rw-------. 1 hogehoge hogehoge 405 6月 8 19:34 2012 authorized_keys ← 公開鍵 |
root 権限に戻ります。FTPをサーバにインストールし、クライアントPCがサーバにアクセスできる準備をします。
[root@hoge123~]# yum -y install vsftpd ← FTPをインストールします。 [root@hoge123~]# service vsftpd start ← FTPサーバを起動します。 |
クライアントパソコンで秘密鍵の取り込みを行います。「スタート」、「ファイル名を指定して実行」の順に 選択して、「名前」の横に cmd と入力してコマンドプロンプトを表示させます。
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\hoge>cd \ ← cd \ と入力します - 赤文字は実際に入力する内容です。- C:\>ftp 192.168.0.10 Connected to 192.168.0.3. 220 (vsFTPd 2.2.2) User (192.168.0.3:(none)): hogehoge 331 Please specify the password. Password:hogehogeのパスワード 230 Login successful. ftp> bin 200 Switching to Binary mode. ftp> get /home/hogehoge/.ssh/id_dsa 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for /home/hogehoge/.ssh/id_dsa (736 byte s). 226 Transfer complete. ftp: 736 bytes received in 0.00Seconds 736000.00Kbytes/sec. ftp> delete /home/hogehoge/.ssh/id_dsa 250 Delete operation successful. ftp> bye 221 Goodbye. C:\>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は DC37-9419 です Cドライブ直下にid_dsa(秘密鍵)があります。 2012/06/03 17:32 <DIR> 41afa64e6196249e8461 2012/06/03 12:30 0 AUTOEXEC.BAT 2012/06/03 12:30 0 CONFIG.SYS 2012/06/03 16:44 <DIR> Documents and Settings 2012/06/08 20:39 736 id_dsa ← id_dsa(公開鍵)です。 2012/06/03 18:05 260,800 ntldr 2012/06/07 19:49 <DIR> Program Files 2012/06/06 19:07 <DIR> WINDOWS 5 個のファイル 261,536 バイト 4 個のディレクトリ 68,903,591,936 バイトの空き領域 C:\>exit |
FTPサーバは不要ですので、終了してから削除します。
[root@hoge123~]# service vsftpd stop [root@hoge123~]# yum -y remove vsftpd [root@hoge123~]# service sshd restart sshd を停止中: [OK] sshd を起動中: [OK] |
秘密鍵を使った Tere Term からのログイン方法です。C:直下に保存したid_dsaは移動やコピーしても構いません。 Tera Term でログインするとき、秘密鍵のパスを指定する必要があるので、どこに移動したか覚えておく必要があります。
ここは、いつもどおりの情報を入力します。「ユーザ名」、「パスフレーズ」入力後、「RSA/DSA鍵を使う」を選択して、「OK」ボタンを押します。
id_dsa(秘密鍵)を選択し、「開く」を押します。
「秘密鍵」にid_dsaのパス名入力されていることを確認して、「OK」ボタンを押します。これで秘密鍵を使用したログインができます。秘密鍵 無しではログインできなくなっています。