sshクライアントを設定しよう(Windows編 その3)

【連載】

にわか管理者のためのLinux運用入門

【第8回】sshクライアントを設定しよう(Windows編 その3)

[2016/02/02 08:00]後藤大地 ブックマーク ブックマーク

Windowsでsshクライアントを使う――ラスト・ワンマイル!

前々回、WindowsにOpenSSHをインストールし、前回、PowerShellで発生する日本語の文字化け問題を解消する方法について説明した。Linux/*BSDなら、最初からここまでの設定がなされた状態で提供されていることを思うとWindowsは面倒なのだが、そこは今春以降に期待しよう。ともあれ、これでようやくWindows環境でsshクライアントを使うための下準備が整った。ゴールまであと少しだ。

Mac OS XやLinux/*BSDの環境からOpenSSHでリモート・ログインする場合、基本的には公開鍵認証を使ったログインのみを有効にしておくほうがよいと説明したことを覚えているだろうか。この点は、Windowsでも同様だ。以降では、Windowsで公開鍵認証を設定する際の手順を見ていこう。

公開鍵と秘密鍵のペアを生成する

まず、公開鍵と秘密鍵のペアを生成する。PowerShellを起動し、オプションなしでssh-keygenコマンドを実行すると、次のように2つのファイルが生成される。

作成される公開鍵と秘密鍵

  • 公開鍵:~.ssh\id_rsa.pub
  • 秘密鍵:~.ssh\id_rsa

「~」の部分は、ここでは「C:\Users\daichi」だ。生成した公開鍵はログインしたいサーバに設定し、秘密鍵は1台のクライアントPCだけで保持しておく。PCを紛失したり、秘密鍵が漏れたりした場合、そのペアとなる公開鍵をサーバから削除すれば、不正ログインを防ぐことができる。

なお、途中で入力を求められる「パスフレーズ」は、秘密鍵を守るためのパスワードのようなものだ。パスフレーズを設定しておけば、万一秘密鍵が流出しても対策を講じるまでの時間稼ぎになる。できるだけ設定しておいたほうがよいだろう。

サーバに公開鍵を設定

作成した公開鍵の中身は、次のような1行のテキストになっている。

複数行にわたっているように見えるが、実は1行

これをサーバに設定するには、まず、パスワード認証でサーバにログインできる状態にしておき、ログイン後、「~/.ssh/authorized_keys」というファイルにこの公開鍵を追加する。追加したら、ログイン方法を公開鍵認証のみにするように設定を変更すればよい。ただし、追加内容などを間違えたまま公開鍵認証のみにしてしまうと、二度とログインできないはめになる。くれぐれも、公開鍵認証でログインできることを確認してから変更するようにしてほしい。

また、このとき気をつけなければいけないのはファイルのパーミッションだ。「~/.ssh」は700、「~/.ssh/authorized_keys」は600でないと、公開鍵として認識されないので注意されたい。

クライアント側の設定

次に、サーバに対してどの秘密鍵を使ってログインするのかを~/.ssh/configファイルに追加する。

追加する設定内容

ここでは、指定したIPアドレスのサーバに「centos」という名前でログインできるように設定した。ポート番号は「22」、ユーザー名は「daichi」、秘密鍵は「~/.ssh/id_rsa」だ。

もし~/.ssh/configファイルが存在しない場合、ファイルを開こうとすると新規作成するか否かを確認するダイアログが表示されるので「はい」を選択して作成する。ただしその際、「config.txt」という具合に拡張子がついてしまうので、いったんファイルを保存した後、mvコマンドでファイル名を変更して拡張子を削除しておく。

設定ファイルのパスが~/.ssh/configになるように拡張子を削除

オプション「-v」で最後の確認

以上で、ひととおりの設定は完了だ。「ssh centos」と入力すれば、設定した公開鍵でログインすることができる。ログイン方法が公開鍵認証のみになっているかどうか確認するには、オプション「-v」を指定して実行する。ログインの流れをもっとくわしく知りたい場合は、オプション「-vvv」を指定して実行すればよい。

ここまでくれば、Mac OS Xからログインしようが、Windows 7でログインしようが、あとは同じだ。余談だが、PowerShellは効率良く”手抜き”ができるすばらしいツールだ。もしなじみがないようなら、これを機会にぜひ使ってみていただきたい。

今回のおさらい

今回の内容をまとめると、次のようになる。PowerShellは使ったが、やったことは基本的に第5回と同じだ。

  • 公開鍵と秘密鍵のペアは、ssh-keygenコマンドで生成する
  • 公開鍵は、サーバの~/.ssh/autorized_keysファイルに追加する
  • 秘密鍵は、クライアント側で保持する
  • クライアント側では~/.ssh/configファイルに設定を追加する
  • ~/.sshとその配下のファイルは、パーミッションを正しく設定すること
  • アクセス時の認証方式は、「ssh -v」で確認できる

すでにお気づきのとおり、クライアントにOpenSSHを使うことで、WindowsでもMac OS XやLinux/*BSDとほぼ同じ感覚で操作/設定できるようになる。ささいなことのようだが、忙しい時などは特に、ちょっとした操作や設定方法が微妙に異なるとそれだけでイライラさせられるものだ。OSが違っても、可能な限り同じソフトウェアを使うようにするのが賢い選択だろう。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【特別企画】 管理者にお馴染みの

【特別企画】 管理者にお馴染みの"バックアップ問題"、Win/Linux混在環境の担当者が出した答えとは?

地味ながらも面倒なうえ、ミスが許されないために精神的苦痛も伴うシステム管理作業。それがバックアップではないだろうか。コスト抑制のためLinuxを使って自力で構築したが、運用に関してもお金をかけられず、シェルスクリプトを組んでバックアップを行う。しかし、細かい作業にそれなりの人足をとられるため結果的にコストが嵩むうえ、実のところ正常にリストアできるかも怪しい。…

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る