Hummingboard をつかってみるよ!

その1 SSH を使うまで

Raspberry Pi や BeagleBone Black がなにやら流行っているらしいので、私もやってみたくなりました。
でも、なんかスペックが微妙だなぁ・・・

補足 : Raspberry Pi は、有名ですがいろいろスペックが残念です・・・ (CPU は一世代前の ARM6、メモリも貧弱、有線LAN が USB と干渉するらしいです。取り柄は GPU が動画のハードウェアエンコしてくれるくらいかねぇ) BeagleBone Black は CPU、メモリともに Raspberry Pi より優秀なのですが、GPU がないせいで動画再生は絶望的らしいです。

ん? Hummingboard? なんじゃこりゃ・・・

CPUは ARM7 で 2 コア、メモリ 1GB に GPU まで積んでる・・・
スペックは良いなぁ・・・ どこんだろ・・・えっイスラエル!?w

スペック表です→ http://www.solid-run.com/products/hummingboard/linux-sbc-specifications/

というわけで、今話題の小型コンピュータのマイナーだけどすごいやつ hummingboard へ xbmc を導入していくのですが、 実は、最初から xbmc をインストールすることもできるんです。 ですが、Linux の勉強のために ArchLinux をインストールして、 そこへいろいろ環境構築して最終的に xbmc を導入してみます。

補足 : ArchLinux はすごい軽いです。実は、Linux 初心者な私ですが、 hummingboard をきっかけに ArchLinux にはまってしまい、 サブ PC にも ArchLinux をインストールして使ってます。 5~6年の PC ですが Ubuntu よりもサクサク動きますので、 古い PC の再生には最適かもしれません。

(1) 購入方法とか、インストールとか・・・

(a) 購入方法

以前はイスラエルから買うしかないようだったのですが、日本でも買えるようになりました。

ここから買いました PETAPICO SHOP (http://www.petapico.biz/)

私は「HummingBoard-i2 AC/SDセット」を購入しましたが、今思えば「HummingBoard-i2eX」の方が良かったなぁ と思ってます。皆さんはお財布と相談して好きなものを買ったら良いと思います。

ちなみに http://www.solid-run.com/ ここが本家、SolidRun 社のホームページです。


HummingBoard-i2
補足 : PICOPETA さんから買うと Android インストール済みの 8GB の マイクロSD と、アダプタが付属します。
(b) あと、あったら良いと思うもの

何をしたいのか? によるのですが、私はメディアセンターにしようと思いましたので、以下のものを買いました。

  • ケース(Pi Tin for the Raspberry Pi - Clear)
  • ちなみにRasPi type B のケースが使えます。

  • リモコン(ルートアール PC用カード型リモコン USB赤外線受光部セット RW-PCM37BK)
  • Linux での使用実績がありましたので購入してみました。

  • Wifi アダプタ(BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2)
  • Wifi で接続したい方は必須ですが、有線LAN で構わないならいらないですね。あと、正直遅いので有線にした方が良いかもしれません。

補足 : USB が 2口しかないので、USB ハブを持っていない方は買っておいた方が良いと思います。
(c) インストールは案外簡単よ!

以前はめんどくさかったんですが、Ignition というインストールツールが本家より発表されまして、 いろいろな OS が簡単に導入できるようになりました。 詳しくは、以下のホームページ(PICOPETA SHOP さんのページです)に書いてありますので、 さくっと Arch を導入しましょう。

(16) CuBox-i/HummingBoardの簡単インストーラー Ignition が登場

(2) まず、最低限知っておいた方がいいことをメモしておきます。

(a) 電源の入り切り

windows 同様に、いきなりリセットしたり電源抜くと linux も壊れます。 以下のコマンドでリブート、シャットダウンを行って下さい。
めんどくさいな・・・と思ってる方も使っているうちになれます。 私がそうでしたから・・・w

リブートはこのコマンドで!
# reboot

シャットダウンはこのコマンドだよ!
# shutdown -h now
		
(b) vi の使い方

非常にクセが強いエディタなので、操作方法を知らないと”まず使えません”w
基本的な使い方、「i で挿入モード」、「ESC でコマンドモードへ :w で書き込み、:q で終了」 この程度は google 先生に「vi 使い方」とでもお願いして予習しておくと良いと思います。

(c) 基本的な unix のコマンドとか

基本的に CUIでの作業ですので、キーボードを打ち込んで作業を行います。 また、 Windows しか触ったこがない方は Linux の流儀みたいなものを あらかじめ予習しておくと良いと思います。

  • Linux のファイル、ディレクトリの考え方
  • ファイルには基本的に拡張子はない。
  • ドット . はカレントディレクトリを示す。
  • ドット2個 .. は現在のカレントディレクトリの上のディレクトリを示す。
  • チルダ ~ はホームディレクトリを示す。
  • /home/ユーザー名 と同じ意味です。

  • パーミッション
  • これも、google 先生に「パーミッション」で検索して軽く予習しておいた方がいいです。 まあ、最初はパーミッションというもので、アクセス権を決めているんだな・・・程度で良いと思います。

  • 基本的なコマンド
  • ls ファイルの表示(MSDOSでいう dir)
  • cd ディレクトリの移動
  • cp コピー
  • mv 移動
  • rm 削除(中身があるディレクトリは rm -rf で削除できます)
  • mkdir ディレクトリの作成
  • cat ファイルの表示

などのファイル操作の基本コマンドは結構多用しますので、覚えておいて損は無いです。 また、パーミッションを意識してください。基本的に自分のホーム以外のファイルを 操作したい場合は sudo が必要になります。

(3) 起動とアップデート

初回ログインは、

  • ユーザ: root
  • パスワード: root

でログインします。

まずは、最新の状態にします。 Ubuntu では apt-get でしたが、Arch は pacman です。 (ちなみに読み方はパックマンでいいんだよね?)

# pacman -Syu

終わったら、リブート
# reboot
		

(4) 日本語のキーボードを使ってる人はキーボードレイアウト の設定

「標準では英語キーボードのキーマップになっているので、 vi すらまともに使えないといった困ったことになります
(試しに”コロン :”を押してみてください。どうです? : キーが使えないと vi がまともに使えないないので困るわけです)。

まずは一時的に変更

# loadkeys jp106
		

永続化させるには、vi で新規に以下のファイルを作ります。vi の予習をしておいて下さい・・・

  • 文字を挿入したい時は i キーを押す。
  • 終了したいときは ESC キーを押してコマンドモードへ移行する。
  • コマンド :w で保存。
  • わかりにくいですが ESCキーを押したあとに コロン:の後、wを入力します。

  • コマンド :q で終了。
  • コマンド :q! で保存せずに終了。

もし、編集中にわけがわからなくなったら、ESC を押せばコマンドモードへ移行しますので、

:q!

を入力すれば、保存せずに終了しますので、仕切り直してください。

# vi /etc/vconsole.conf
		

以下を書き込む。

KEYMAP=jp106
		

ついでに忘れないうちに root のパスワードを変更しておきましょう。

# passwd root
(パスワード確認のため2回入力しますよ。)
		

タイムゾーンを日本にします。

# timedatectl set-timezone Asia/Tokyo
		

あ、あと nano を使いたいので nano をインストールしておきます。

# pacman -S nano
		

必須ではありませんが、マシンのホスト名を変更したければ、 以下のファイルを書き換えてください。

ちなみにホスト名って言うのは、[root@alarm ~]# の alarm の部分です。 Windows 側から見えるマシン名もこれになりますので、 ご自身のわかりやすい名前に変えてもいいでしょう。

# vi /etc/hostname
		
alarm

となっていますので、例えば、

arch_xbmc

と書き換えて保存すると、ホスト名が arch_xbmc に変わるわけです。
		

これでリブートしてみてください。
次回ログイン時の root のパスワードが変わっていますので注意して下さい。
ログイン後 キーマップが切り替わっているかをチェックしましょう。
(コロン : をうってみてきちんと表示されればOKです。)

(5) 作業用のユーザを作る

root でいじるのはお行儀が悪いので作業用のユーザを作りましょう。

具体的なユーザ名があった方がわかりやすいと思いますので ここでは「ntaka」というユーザ名で説明します。

(a) ユーザの追加

ユーザを追加して wheel グループに入れる。 (wheel グループとは管理者に昇格できるグループらしいです)

# useradd -m -g wheel ntaka
# passwd ntaka

(パスワード確認のため2回入力しますよ。)
		
(b) sudo を使えるようにする

おなじみの sudo ですね。 ちなみに、私 linux 初心者なので sudo って標準だと思ってましたよ。 sudo ってあとから入れる物だったんですね。というか、Arch がそうなだけなのかねぇ・・・

# pacman -S sudo
		

ユーザを sudoers に登録します

# visudo
		

visudo で vi での編集にうつります。”# User privilege specification”という行を探してユーザを追加します。
(vi の使い方を思い出してください)

## User privilege specification
#
root ALL=(ALL) ALL
ntaka ALL=(ALL) ALL ←これを追加!
		

必須ではありませんが、sudo コマンドの際にパスワードを入力したくないならば、 以下の”Same thing without a password”をコメントアウト(# を外す)します。

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL ←これをコメントアウト
		

再起動後、先ほど作成したユーザでログインし直します。
これ以降は CUI の最初が [root@alarm ~]# から [ntaka@alarm ~]$ といった感じなってると思います。

補足 : ちなみに、# の場合は su(スーパーユーザ)を表していています。$ の場合は、 一般のユーザって見分けがつくんですね。
あと、他の方のホームページでコマンドの頭に # がついている場合は sudo が必要なんだなと覚えておくと便利です。

(6) 固定IP を使用する

SSH を使うに当たって IP を固定したいと思います。
(固定しなくていい方は、読み飛ばしてください。)

(a) まずは、今の状況を確認する。

試しに以下のコマンドを打ってみてください。

[ntaka@alarm ~]$ ip addr show
		
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    ・・・省略
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether d2:53:b5:00:52:ff brd ff:ff:ff:ff:ff:ff
    inet 192.168.24.73/24 brd 192.168.24.255 scope global eth0
       valid_lft forever preferred_lft forever
    ・・・省略
		

現在どのようなネットワークが設定されているかを確認できるはずです。
この例で行けば・・・

  • eth0 というのが 有線LAN のデバイス名です。
  • また、MACアドレスは d2:53:b5:00:52:ff であることもわかります。
  • 現在 192.168.24.73 が DHCP によって割り当てられているようですね。

ネットワークにある程度詳しい方ならばご存じかもしれませんが、 なぜ何にも設定していないのにインターネットに接続できているかと言えば、 DHCP というものが有効になっているからです。

さて、どのユニット(初心者なりに調べてみると Arch というか Systemd ってやつじゃ、デーモンとかをユニットと呼ぶらしい) が DHCP の機能を提供しているかと言えば、

systemd-networkd

といわれるユニットです。試しに状態を表示させてみましょう。

[ntaka@alarm ~]$ systemctl

UNIT                        LOAD   ACTIVE SUB       DESCRIPTION
proc-sys-fs-binfmt_misc.automount loaded active waiting   Arbitrary Executable F
sys-devices-platform-serial8250-tty-ttyS0.device loaded active plugged   /sys/de
sys-devices-platform-serial8250-tty-ttyS1.device loaded active plugged   /sys/de
sys-devices-platform-serial8250-tty-ttyS2.device loaded active plugged   /sys/de
sys-devices-platform-serial8250-tty-ttyS3.device loaded active plugged   /sys/de
sys-devices-soc0-soc.1-2000000.aips\x2dbus-2000000.spba\x2dbus-2020000.serial-tt
sys-devices-soc0-soc.1-2100000.aips\x2dbus-2188000.ethernet-net-eth0.device load
sys-devices-soc0-soc.1-2100000.aips\x2dbus-2194000.usdhc-mmc_host-mmc1-mmc1:aaaa
sys-devices-soc0-soc.1-2100000.aips\x2dbus-2194000.usdhc-mmc_host-mmc1-mmc1:aaaa
sys-devices-soc0-soc.1-2100000.aips\x2dbus-21f0000.serial-tty-ttymxc3.device loa
sys-devices-soc0-sound\x2dhdmi.27-sound-card1.device loaded active plugged   /sy
sys-devices-soc0-sound\x2dspdif.26-sound-card0.device loaded active plugged   /s
sys-module-configfs.device  loaded active plugged   /sys/module/configfs
sys-module-fuse.device      loaded active plugged   /sys/module/fuse
sys-subsystem-net-devices-eth0.device loaded active plugged   /sys/subsystem/net
-.mount                     loaded active mounted   /
dev-mqueue.mount            loaded active mounted   POSIX Message Queue File Sys
run-user-1000.mount         loaded active mounted   /run/user/1000
sys-fs-fuse-connections.mount loaded active mounted   FUSE Control File System
sys-kernel-config.mount     loaded active mounted   Configuration File System
sys-kernel-debug.mount      loaded active mounted   Debug File System
tmp.mount                   loaded active mounted   Temporary Directory
systemd-ask-password-console.path loaded active waiting   Dispatch Password Requ
systemd-ask-password-wall.path loaded active waiting   Forward Password Requests
session-14.scope            loaded active running   Session 14 of user ntaka
・・・省略
		
補足 : ちなみにカーソルキーなんかでスクロールできる状態になっていると思います。 終了したければ q キーを押してください。

ずらーっと、現在のユニット一覧が表示されるはずです。
探してみると・・・

systemd-networkd.service loaded active running Network Service

という項目が確認できるかと思います。

systemd-networkd の状態を確認したければ、

[ntaka@alarm ~]$ systemctl status systemd-networkd
* systemd-networkd.service - Network Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2014-12-29 11:19:52 JST; 26min ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 207 (systemd-network)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-networkd.service
           `-207 /usr/lib/systemd/systemd-networkd
		

というわけで、この謎のユニット systemd-networkd が DHCP を有効にして、 IP アドレスを割り当ててくれているわけです。

(b) 設定を書き換える

さてさて、Archlinux ではネットワークを設定する方法が大きく分けて、 この systemd-networkd と netctl とあるようです。 「どっちが良いのか?」は初心者の私にはよくわからないのですが、 標準で有効になっている systemd-networkd を使ってみたいと思います。

systemd-networkd (日本語) を見て頂けるとわかるのですが、

設定ファイルは /usr/lib/systemd/network から、 そして一時的な実行時のネットワークディレクトリ /run/systemd/network と ローカルのネットワーク管理ディレクトリ /etc/systemd/network から読み込まれます。 /etc/systemd/network 内のファイルが一番優先されます。

とありますので、一番優先されるらしい /etc/systemd/network を見てみましょう

[ntaka@alarm ~]$ ls /etc/systemd/network
eth0.network
		

どうやら、eth0.network というのが、設定ファイルのようです。

そこで、これを書き換えちゃいましょう!

[ntaka@alarm ~]$ sudo nano -w /etc/systemd/network/eth0.network

[Match]
Name=eth0

[Network]
DHCP=both
		

Name=eth0

が、この設定ファイルを使用するデバイスの名前

DHCP=both

が DHCP を有効にしている項目です。

そこで・・・

[Match]
Name=eth0

[Network]
Address=192.168.24.62/24
Gateway=192.168.24.1
DNS=192.168.24.1
		

この様に変更します。
(当然ですが、アドレスはご自身の環境に合わせて変えてくださいね!)

再起動して ip addr show コマンドで IPが固定されたかを確認してみましょう。

補足 : Linux での IPアドレスの設定方法ですが、サブネットマスクを同時に設定するのが一般的なようです。
うーん・・・Windows ユーザの私には勉強ばかりです・・・。

ちなみに、192.168.24.62/24 というのは、 192.168.24.62 が見慣れた IPアドレスだというのは良いとして、/24 がサブネットマスクに相当し、
具体的には 255.255.255.0 と同等です。
(32 ビットの上位 24ビットが全て 1。 つまり、8 ビット全て 1 の 2進数 (11111111) は、10進数で (255) だから、8×3で 255.255.255 残りは 0 ということですね)
補足 : ちなみに、nano の簡単な使い方ですが、終了したいときは Ctrl+X です。その際に 保存するか?、しないのか? を y/n でキー入力します。

(7) SSH を導入する

さて、SSH を導入します。これによって Windows から、いろいろできるようになります。 詳細は Secure Shell (日本語) をご覧下さい。

(a) まずは、さくっとテストしてみる

なんか初めから入っているようなので、 検索をしてみて以下のように表示されれば、初めから入っています。

[ntaka@alarm ~]$ systemctl | grep sshd
sshd.service
                                               loaded active running   OpenSSH Daemon
		

もし入っていなければ、以下のコマンドでインストールして、デーモンを有効にしてください。

インストール
[ntaka@alarm ~]$ sudo pacman -S openssh

デーモンを有効にする
[ntaka@alarm ~]$ sudo systemctl start sshd

デーモンを初回起動する
[ntaka@alarm ~]$ sudo systemctl enable sshd
		

試しにログインしてみましょう!

と、行きたいのですが、クライアントソフトをインストールする必要がありますねw

私は、PuTTY(ごった煮版です) を使用しているのですが、皆さんは気に入ったものを使用して頂ければと思います。


こんな感じで・・・


ユーザ、パスワードを入力する

というように、あっさりつながったと思います。

PuTTY の簡単な使い方ですが、詳細は google 先生に聞いてもらうとして、簡単に説明しますと

  • PuTTY 内で「コピー」→「張り付け」したい場合は、コピーしたい文字列をマウスで選択して右クリックです。 PuTTY のカーソル位置へ貼り付けられますのでその辺を注意してください。
  • Windows 側でコピーした場合(クリップビードからということです)は、PuTTY の張り付けしたい位置へカーソル移動して右クリックです。
  • PuTTY 側からコピーしたい場合は、コピーしたい文字列をマウスで選択して、Ctrl+Ins です。 (右クリックでコピーしてしまうと PuTTY 内へ貼り付けられてしまうので注意です。)
(b) セキュリティを考える

まず、現状でこんなにあっさり接続できてしまうのが問題ですw  というのも、簡単に接続できるということは、悪意のある第三者にも容易に接続されやすいということだからです。

「といっても、別に・・・外からつなげるわけじゃないし・・・」

まあ、気持ちはわかりますが、 そういう方でも root くらいは無効にしておいた方が良いと思われます。 なぜなら、正規のユーザは root でログインできなくとも、sudo su でいつでも root へ昇格できますので、root でのログインは必要ありません。 逆に、侵入者から考えたら root は必ず存在するユーザですし、 root を取ってしまえばやりたい放題なわけで正規ユーザにはデメリットしかありません。

侵入者「デフォルトのままだと、ポート 22 で、ユーザ名 root、あとはパスワードだけだな・・・」

と、こういうわけです。残る関門はご自身の設定した多分短いパスワードだけです。
少し怖くなってきたでしょ?w

対策は設定ファイルをいじるだけなので、パッパとやってしまいましょう。 以下のコマンドで、設定ファイル /etc/ssh/sshd_config を開きます。

[ntaka@alarm ~]$ sudo nano -w /etc/ssh/sshd_config
		
(c) 最低限やっておいた方が良いこと!

デフォルトのポートが 22 なので危険です。変更するポートは、他が使っていない 4 桁以上( 65535 以内)がいいと思います。

例えばですが 1234 と設定するならば、

#Port 22
を

Port 1234
と変更します。
		

次に、ルートでのログインを無効化しましょう。

#PermitRootLogin yes
を

PermitRootLogin no
と変更します。
		

さらに、パスワード無しの接続も禁止します。

#PermitEmptyPasswords no
をコメントアウトし

PermitEmptyPasswords no
と変更します。
		
補足 : ちなみに、nano で検索をしたい場合 Ctrl+W で検索したい文字を入力します。
[ntaka@alarm ~]$ sudo systemctl restart sshd
		

これで、ssh を再起動して、PuTTY で再度ログインしてみてください。 ポート設定等が 22 のままでは失敗するはずです。

(d) さらに強固なセキュリティ対策を行うには?

もし、さらに強固なセキュリティが必要ならば 公開鍵認証 でのログインを強要できますが、 この辺はホームネットワーク内での運用では過剰かとも思うので、興味がある方のみが行えば良いと思います。

まず、ssh-keygen で鍵を作ります。

[ntaka@alarm ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/ntaka/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): ←空(Enter)でも良いです
Enter same passphrase again: ←空(Enter)でも良いです
Your identification has been saved in /home/ntaka/.ssh/id_rsa.
Your public key has been saved in /home/ntaka/.ssh/id_rsa.pub.
The key fingerprint is:
cd:9c:1f:ef:63:f8:69:5e:83:f2:cf:a4:46:2f:54:aa ntaka@alarm
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|         + .   . |
|        S = . o  |
|           . *.  |
|           .=ooo.|
|           E++B+.|
|            .BB+ |
+-----------------+
		

これで、鍵ファイルが /home/ntaka/.ssh へ生成されます。

補足 : .ssh は隠しディレクトリですから ls では表示されません。

ls -a

としてみると表示されます。
この様に、ファイルやディレクトリの頭にドット . がつくと隠しファイルになるのがルールです。
補足 : パスフレーズ入れなくていいの? ですが、この方のホームページに有用な結果が示されています。

SSH秘密鍵のパスフレーズは(つけるなら)11文字以上にしましょうねという話

結論としては、
  • そもそも、秘密鍵を盗まれたことに気付かなければどうしようもない(盗難に気付いて変更するまでの時間稼ぎがパスフレーズなので・・・)。
  • また、短いパスフレーズ 4 ~ 5 文字程度ではほとんど意味がない(現実的な時間で解析される)。
  • 例え長くても一般的な単語を使ったパスフレーズではすぐ破られてしまう。
  • よって、ホームネットワーク程度では必要ない。

だそうです。私としても全くその通りと思いますので、今回はパスフレーズはなしで行きます。

公開鍵 id_rsa.pub を authorized_keys というファイルへ結合します。

[ntaka@alarm ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
		
補足 : 初回は、ディレクトリすらないので(新規です)「そんなファイルはないぞ!」と慌てず、安心してください。私はちょっと悩んだw

また、>> の意味ですが、cat .ssh/id_rsa.pub の出力を .ssh/authorized_keys へ結合する。

という意味です。
ですから、何回もやると・・・

そうですね、同じキーが複数回結合されてしまいますw

もし、やってしまった場合は、authorized_keys ファイルをエディタで修正しても良いでし、 他にキーがないことがわかっているならば、authorized_keys ファイルを rm で消しても良いし、 ちょっとコマンドを変えて

cat .ssh/id_rsa.pub > .ssh/authorized_keys

としても良いです。あ、> は上書きってことです(リダイレクトというらしいです)。

必要の無くなった、ファイルを削除し authorized_keys ファイルのパーミッションを自分以外アクセスできないように変更します。

[ntaka@alarm ~]$ rm .ssh/id_rsa.pub
[ntaka@alarm ~]$ chmod 600 .ssh/authorized_keys
		

次に、秘密鍵 id_rsa をご自身の PC へ持ってくる必要があるのですが、どうしたものでしょうね・・・ samba を構築していれば、あっさりコピーできるのですがまだ構築してませんし。

というわけで SSH でコピーしちゃいましょう。
まあ、「こういう方法もあるのだな」というのも勉強ですね。

Windows のコマンドプロンプトを開いて、PuTTY がインストールされているフォルダへ移動してください。
pscp.exe というファイルがあるはずです。これが転送ソフトです。

PuTTY へ入力している設定が・・・

  • ユーザ : ntaka
  • パスワード : 123456789
  • ポート : 1234
  • IPアドレス : 192.168.24.62

だとして、話を進めます。

Windows のコマンドプロンプトですよ!

pscp.exe -pw "123456789" -P 1234 ntaka @192.168.24.62:.ssh/id_rsa .
id_rsa                    | 1 kB |   1.6 kB/s | ETA: 00:00:00 | 100%
		

はい、これで putty のフォルダに id_rsa が転送されたはずです。

早いうちに必要の無くなった、秘密鍵を削除しておきます。

[ntaka@alarm ~]$ rm .ssh/id_rsa
		

次に PuTTY で扱えるように秘密鍵を変換します。

先ほどの PuTTY があるフォルダに puttygen.exe というアプリがあるはずですので、 それを起動して、先ほどの id_rsa を読み込んで、「秘密鍵の保存」で保存してください。

補足 : ファイルの種類を「全てのファイル」に設定しないと表示されません。 また、保存の際に「パスフレーズがない」と怒られますが、そのまま OK してください。

puttygen.exe


あとは、putty のカテゴリの「接続」-「SSH」-「認証」 の 「認証のためのプライベートキーファイル」 へ 先ほど puttygen で作ったファイルを設定します。


設定方法


では、早速 SSH でログインします。

login as: ntaka
Authenticating with public key "imported-openssh-key"
Last login: Mon Dec 29 14:41:01 2014 from 192.168.24.51
[ntaka@alarm ~]$
		

どうでしょうか? この様に 公開鍵を使用してログインできたでしょうか?

ログインできたら、公開鍵認証以外を禁止してしまいましょう。

[ntaka@alarm ~]$ sudo nano -w /etc/ssh/sshd_config
		
#PasswordAuthentication yes
を変更して

PasswordAuthentication no
とします。
		

SSH を再起動して、パスワードでのログインが許可されないのを確認してください。

[ntaka@alarm ~]$ sudo systemctl restart sshd
		

はい、これで公開鍵認証以外は蹴られてしまう設定がなされました。 ここまでやっておけば、ホームネットワークでは完璧だと思います。

補足 : ちなみに、putty の 「カテゴリ」-「接続」-「データ」の 「自動ログインのユーザ名」 へ ご自身のユーザ名(流れで言えば ntaka)を記入しておけば、 何も入力しなくても、ログインができるようになります。 まあ、楽なんでこのために公開鍵認証を使用するのも良いかと思います。
補足 : 外部に SSH サーバを公開するような場合は、これに加えてポートスキャン対策や、 指定した IPアドレス以外は受け付けないようにするなどの対策が必要です。

前回へ戻る