SSHは、データの暗号化や公開鍵を利用した認証技術により安全なリモート管理やファイル転送を可能にするツール。パスワードやデータの漏洩といった危険性が高いTelenetやFTPに代わって、リモート管理に良く使われるようになった。接続方式にはSSH1とSSH2がありSSH2の方が、SSH1より強固な暗号化になっているので、ここではSSH2を使用し鍵方式によるログインの設定を行う。
■ OpenSSHの設定
OpenSSH設定ファイルを編集 [root@server1 ~]# vi /etc/ssh/sshd_config スーパーユーザでのログインを禁止 #PermitRootLogin yes ↓ PermitRootLogin no ← #を削除して no に変更 通常のパスワードではなく鍵方式に変更 #PasswordAuthentication yes ↓ PasswordAuthentication no ← #を削除して no に変更 空パスワードの禁止 #PermitEmptyPasswords no ↓ PermitEmptyPasswords no ← #を削除
■ SSHアクセス制限
サーバー自身、内部ネットワーク、特定の外部IP(xxx.xxx.xxx.xxx)からのアクセスを許可 [root@server1 ~]# echo "sshd : 127.0.0.1 192.168.1. xxx.xxx.xxx.xxx" >> /etc/hosts.allow 上記以外の全てのアクセスを禁止 [root@server1 ~]# echo "sshd : ALL" >> /etc/hosts.deny
会社等からアクセスする場合、自分の会社の接続環境(IPアドレス)を調べ、/etc/hosts.allowへ登録する必要がある。そんな時は診断くんで確認できる。
■ OpenSSHの再起動
[root@server1 ~]# systemctl restart sshd ← sshd再起動 [root@server1 ~]# systemctl enable sshd ← sshd自動起動設定 [root@server1 ~]# systemctl status sshd ← sshd状態表示 sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) Active: active (running) since 日 2014-12-21 08:11:12 JST; 1min 5s ago Main PID: 14825 (sshd) CGroup: /system.slice/sshd.service └─14825 /usr/sbin/sshd -D 12月 21 08:11:12 server1.yokensaka.com systemd[1]: Started OpenSSH server daemon. 12月 21 08:11:12 server1.yokensaka.com sshd[14825]: Server listening on 0.0.0.0 port 22. 12月 21 08:11:12 server1.yokensaka.com sshd[14825]: Server listening on :: port 22.
■ SSH2による鍵の作成
鍵を作成するユーザーで作業を進める。 [root@server1 ~]# su - higo 鍵の作成を行う(何も入力しないで空エンターを押す) [higo@server1 ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/higo/.ssh/id_rsa): Created directory '/home/higo/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/higo/.ssh/id_rsa. Your public key has been saved in /home/higo/.ssh/id_rsa.pub. The key fingerprint is: 50:49:5b:d2:b8:09:0f:6b:68:bc:5b:83:2e:4c:ce:25 higo@server1.yokensaka.com The key's randomart image is: +--[ RSA 2048]----+ | .++. | | o.o+. | | . ..=.o | | + o.+ | | . + S | | E + o | | = + o . | | = o | | . | +-----------------+ 鍵の作成先を表示する [higo@server1 ~]$ ls -la /home/higo/.ssh/ 合計 16 drwx------ 2 higo higo 4096 9月 19 10:49 2011 . drwx------. 24 higo higo 4096 9月 19 10:49 2011 .. -rw------- 1 higo higo 1675 9月 19 10:49 2011 id_rsa ← 秘密鍵鍵 -rw-r--r-- 1 higo higo 408 9月 19 10:49 2011 id_rsa.pub ← 公開鍵 公開鍵をauthorized_keysに追加 [higo@server1 ~]$ cat /home/higo/.ssh/id_rsa.pub >> /home/higo/.ssh/authorized_keys 公開鍵を自分のみアクセスできるように変更 [higo@server1 ~]$ chmod 600 /home/higo/.ssh/authorized_keys 公開鍵を削除 [higo@server1 ~]$ rm -f /home/higo/.ssh/id_rsa.pub 鍵の作成先を表示 [higo@server1 ~]$ ls -la /home/higo/.ssh/ 合計 16 drwx------ 2 higo higo 4096 9月 19 10:51 2011 . drwx------. 24 higo higo 4096 9月 19 10:49 2011 .. -rw------- 1 higo higo 408 9月 19 10:51 2011 authorized_keys ← 公開鍵 -rw------- 1 higo higo 1675 9月 19 10:49 2011 id_rsa ← 秘密鍵
■ 秘密鍵の抜き取り
(xWindowにしてUSB経由で抜き取り、クライアントマシンにコピーするほうが簡単)
FTPでコピーする方法
スーパーユーザ(root)になる。 [higo@server1 ~]$ su - rootのパスワードを入力。 Password: FTPサーバをインストール [root@server1 ~]# yum install vsftpd Loaded plugins: fastestmirror, refresh-packagekit Existing lock /var/run/yum.pid: another copy is running as pid 2557. Another app is currently holding the yum lock; waiting for it to exit... The other application is: PackageKit Memory : 47 M RSS ( 95 MB VSZ) Started: Mon Sep 19 08:36:00 2011 - 00:14 ago State : Sleeping, pid: 2557 Loading mirror speeds from cached hostfile * base: ftp.jaist.ac.jp * centosplus: ftp.jaist.ac.jp * epel: ftp.jaist.ac.jp * extras: ftp.jaist.ac.jp * updates: mirror.khlug.org Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package vsftpd.i686 0:2.2.2-6.el6_0.1 set to be updated --> Finished Dependency Resolution Dependencies Resolved ========================================================================================== Package Arch Version Repository Size ========================================================================================== Installing: vsftpd i686 2.2.2-6.el6_0.1 updates 155 k Transaction Summary ========================================================================================== Install 1 Package(s) Upgrade 0 Package(s) Total download size: 155 k Installed size: 343 k Is this ok [y/N]: y Downloading Packages: vsftpd-2.2.2-6.el6_0.1.i686.rpm | 155 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : vsftpd-2.2.2-6.el6_0.1.i686 1/1 Installed: vsftpd.i686 0:2.2.2-6.el6_0.1 Complete! FTPサーバを起動させる [root@server1 ~]# /etc/rc.d/init.d/vsftpd start vsftpd 用の vsftpd を起動中: [ OK ]
ここからは、Windowsのコマンドプロンプトで作業する。(管理者として実行)
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\higo>cd \ ← ローカルのカレントをC:\にしておく C:\>ftp 192.168.1.4 ← FTPでサーバに接続 192.168.1.4 に接続しました。 220 (vsFTPd 2.2.2) ユーザー (192.168.1.4:(none)): higo ← ユーザ名を入力 331 Please specify the password. パスワード: ← パスワードを入力 230 Login successful. ftp> bin ← 転送モードをバイナリモードにする 200 Switching to Binary mode. ftp> get /home/higo/.ssh/id_rsa ← 秘密鍵を取得 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for /home/higo/.ssh/id_rsa (951 bytes). 226 File send OK. ftp: 1,675 bytes received in 0.00Seconds 1675000.00Kbytes/sec. ftp> bye 221 Goodbye. C:\> C:\>dir ← ローカルの確認 ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 2514-DE80 です C:\ のディレクトリ 2011/07/31 13:00 <DIR> ATI 2011/07/31 18:22 <DIR> ColorVision 2011/08/03 00:17 <DIR> CrystalDiskMark0003FFBA 2011/08/07 23:55 <DIR> CrystalDiskMark002D3A0D 2011/08/12 21:28 <DIR> CrystalDiskMark004337AE 2011/07/31 08:50 <DIR> FIRSTITPRO 2011/09/19 10:49 1,675 id_rsa ← コピーされている 2011/07/30 21:25 <DIR> Intel 2011/07/31 19:57 1,692 lucid.log 2009/07/14 12:20 <DIR> PerfLogs 2011/09/17 07:39 <DIR> Program Files 2011/09/17 07:37 <DIR> Program Files (x86) 2011/07/31 01:48 <DIR> temp 2011/07/30 20:43 <DIR> Users 2011/09/17 03:21 <DIR> Windows 2011/07/31 21:18 8,388,608 Z68PRO_1.60 3 個のファイル 8,391,975 バイト 13 個のディレクトリ 52,273,422,336 バイトの空き領域 C:\>exit ← コマンドプロンプトを終了
■ 外部からの接続
外部からの接続には、ルーターの設定が必要。
ルータの設定で22番のポートを開ける。
■ ポートチェック【ポート開放確認】
「管理しているサーバーが外部から接続アクセスできるか?」「ポートは開放されているか?」「portは閉じているか?」「ルータのポートは開放されているか」等の
ポートチェック・ポートの疎通確認テストはこちらで
■ 秘密鍵の抜き取りが出来たら、次はリモート接続(PuTTY)の設定