sshクライアントを設定しよう(Mac OS X・Linux/*BSD編)

【連載】

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

【第5回】sshクライアントを設定しよう(Mac OS X・Linux/*BSD編)

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

sshクライアントを設定する(Mac OS X・Linux/*BSD)

前回のsshdサーバの設定に続き、今回はsshクライアントを設定してみよう。Mac OS XにもLinuxディストリビューションにも、最初からsshクライアントがインストールされているので、まずはこの環境をセットアップする方法を紹介したい。Windowsでのセットアップ方法については、次回説明する。

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

まず、前回セットアップしたsshdサーバにログインするために、公開鍵と秘密鍵のペアを生成する。すでにLinuxディストリビューションをOSとして使っているのであれば、細かい説明は不要だろう。そこで、以下ではMac OS Xを使っていることを前提に説明する。

Mac OS Xの場合、アプリケーションの選択で「その他」→「ターミナル」を選択すると次のようなアプリケーションが起動する(Linuxディストリビューションでも、「gnome-terminal」や「Konsole」といったターミナル・アプリケーションがあるので起動してほしい)。

アプリケーションの選択で「その他」→「ターミナル」を選択すると起動する画面

公開鍵と秘密鍵のペアは、「ssh-keygen」というコマンドを使って生成する。途中で「パスフレーズ」なるものの入力を求められるのだが、これは秘密鍵そのものを保護するためのパスワードのようなものだと思ってもらえばよい。

公開鍵と秘密鍵のペアを生成。途中で秘密鍵を保護するためのパスフレーズを入力する

上記のようにオプションを指定せずにssh-keygenコマンドを実行すると、次のパスで2つのファイルが生成される。

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

秘密鍵のほうは、クライアント側で保存しておく。秘密鍵は1台のPCのみに保存しておき、PCを紛失したりして秘密鍵が漏洩した場合には、ペアの公開鍵をサーバから削除するといった対処を行う。

あとは、公開鍵をサーバに設定すれば、そのサーバにログインできるようになる。なお、~/.sshのパーミッションが700になっていることや、~/.ssh/id_rsaのパーミッションが600になっていることも確認しておこう。これらのパーミッションが間違っていると機能しないので注意してほしい。

サーバに公開鍵を設定

作成した公開鍵の中身は、次のようになっている(複数行にわたっているように見えるが、すべて1行で書いてある)。

作成した公開鍵の中身

サーバにログインし、「~/.ssh/authorized_keys」というファイルにこの公開鍵を追加する。サーバはいったんパスワード認証でログインできる状態にしておき、ログイン後、設定が終わったらログイン方法を公開鍵認証のみにするように変更すればよい。作業を間違えると二度とログインできなくなるので、公開鍵認証でログインできることをきちんと確認してから設定を変更しよう。

なお、~/.ssh/authorized_keysがもし存在しなければ、新規に作成する必要がある。その際、ファイルのパーミッションに注意してほしい。同ファイルのパーミッションは600にしておかないと、機能してくれないからだ。

~/.ssh/authorized_keysファイルを作成し、パーミッションを600に設定

クライアント側の設定と、ログイン方法の確認

サーバに対してどの秘密鍵を使ってログインするのかを~/.ssh/configファイルに追加する。ここでは例として、指定されたIPアドレスのサーバに「webserver」という名前でログインできるように設定している。ポート番号は「22」、ユーザー名は「suzuki」、秘密鍵は「~/.ssh/id_rsa」だ。

ログイン設定をクライアントの~/.ssh/configファイルに追加した

あとは、「ssh webserver」のように入力すれば、公開鍵でログインできるようになる。ログイン方法の確認は、以下のようにオプション「-v」を指定して実行すればよい。

ログイン方法が「publickey」になっているのが確認できる(ハイライト部分)

なお、ログインの流れをもっと詳しく把握したい場合は、「-vvv」オプションを指定する。

今回のおさらい

今回の内容をまとめると、次のようになる。

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

設定作業に慣れるためにも、何度か公開鍵と秘密鍵のペアを作り替えて、いろいろなパターンを試してみるとよいだろう。「公開鍵を放置して、どこかから漏れた秘密鍵でログインされる」というのは、よくあることだ。「公開鍵をサーバから削除する」、「削除したら、ログインできなくなる」という流れは、ぜひ1度経験/確認しておいてほしい。

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

一覧はこちら

連載目次

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

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

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

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

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
対話システムをつくろう! Python超入門
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
PowerShell Core入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

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

一覧はこちら

会員登録(無料)

ページの先頭に戻る