ssh600_300

Debian 7.7「wheezy」SSH設定とWindowsクライアントTeraTerm設定

2014/11/16[公開]

私の自宅サーバーの運用方針としては

  • サーバー機を直接操作はしない(緊急時除く)
  • windowsノートPCからSSH(バージョン2)通信のみですべてまかなう
  • 自宅でも外でも場所はどこからでもアクセス可能
  • アクセスユーザーを自分だけ、秘密鍵ログインでガチガチに

この方針にあわせたSSHの設定とクライアント側の初回接続設定を記録した備忘録です。

この記事ではテスト環境用として自宅ルーター内でローカルIPで設定した内容となっています。

前提条件として

DebianとTeraTerm、WinSCPのインストール方法はコチラをご覧ください

Debian 7.7「wheezy」のインストール

Debian 7.7「wheezy」固定IPの設定

【windows】SSHクライアントTeraTermのインストール

ちょっと長いですが、一気に設定をして安全な操作環境を作りましょう。

DebianサーバーにSSHをインストールする

SSHは、heartbeat問題という脆弱性が2014年にあったばかりなので間違いなく最新バージョンをインストールしましょう。

サーバー機で操作します。

suコマンドで管理者権限になります。

まずはアップデートをかけてから

SSHをインストールします。

ssh1

文字化け状態ですが、YesかNoか聞いてきたら「y」で進みましょう。

SSHライアントソフトではちゃんと日本語が表示されるので、サーバー側の文字化け対策は実施しません。

Tera Termで公開鍵と秘密鍵を作る

windowsクライアントPCよりTera Termを起動します。

ssh2

ホストにサーバーのIPアドレスを入れて「OK」

ssh3

Debianインストール時に作ったユーザー名とパスワードで「OK」

※rootでログインはできるだけ避けましょう

公開鍵の作成と保存

ssh4

「設定」メニューの中の「SSH鍵生成」を選択

ssh5

鍵の種類「RSA」、ビット数「2048」になってるのを確認して、「生成」

ssh6

鍵のパスフレーズを上下に入力して「公開鍵の保存」をクリック

パスフレーズは今後も使います、メモを忘れずに。

ssh7

任意の場所に「保存」します。

ファイル名を変更してもいいですが、今回はid_rsa.pubのまま保存します。

秘密鍵の作成と保存

ssh8

続いて「秘密鍵の保存」をクリック

ssh9

任意の場所に「保存」します。

ファイル名を変更してもいいですが、今回はid_rsaのまま保存します。

公開鍵ファイルをDebianサーバーに転送する

クライアントPCに保存した公開鍵ファイルをTeraTermを使いサーバーに転送します。

ssh10

鍵生成の画面を「×」で閉じます。

ssh11

保存した公開鍵「id_rsa.pub」ファイルを、TeraTermの画面上にドラッグ&ドロップします。

ssh12

「SCP」をクリック

ssh13

何もメッセージが出ないと転送成功です。

上図では転送成功したかlsコマンドでファイルが在ることを確認しています。

公開鍵ファイルを既定のファイル名と場所に配置

このあと設定するsshd_configファイルのデフォルト設定に合わせておきます。

ユーザーフォルダの中に.sshフォルダを作り、authorized_keyファイルという名前で保存します。

sshd_configファイルの編集

debianの場合、/etc/ssh/sshd_configを編集します。

suコマンドでroot権限になってから、念のためバックアップを取っておきます。

sshd_configファイルを編集します。

かなり長い記述のファイルですが、5箇所変更します。

今回は上から順番に5箇所まとめて変更しますが、初めての方は一箇所ずつ変更して接続確認しながら進めることを推奨します。

ポート番号の変更

デフォルトのポート22のままだと不正侵入のリスクが高いので変更します。

推奨は、悪意のあるポートスキャンがされにくい1024以上の任意のポートが良いみたいです。

今回は、ポート番号55555としました。

sshd_configファイルの5行目を以下のように変更します。

rootでのログイン禁止

rootログインを不可能にするのは、不正侵入対策の効果が高いです。

27行目を以下のように変更します。

公開鍵のファイルの場所を指定

さきほど保存した公開鍵のファイルの場所の指定を有効にします。

32行目を以下のように変更します。

プレインテキストでのログイン禁止

ログイン方法を秘密鍵ログイン限定にするため、プレインテキストでのログインを禁止にします。

51行目を以下のように変更します。

ログインできるユーザーを限定する

ログイン可能なユーザーを指定して限定しちゃいます。

これは追記のため、最終行に追加します。

編集が終わったら、「Ctrl+x」→「y」→Enter で保存します。

サーバーを再起動します。

SSHだけをリスタートしたい場合はコチラ

動作確認

再びTeraTermを起動します。

ssh14

設定したポート55555を入力して、「OK」

ssh16

  1. ユーザー名と秘密鍵のパスフレーズを入れる (ユーザーのパスワードではありません)
  2. ラジオボタンで「RSA/DSA/ECDSA/ED25519鍵を使う」を選択
  3. 「秘密鍵」をクリックして、保存してある秘密鍵ファイルid_rsaを選択
  4. 「OK」をクリック

ssh18

ログインできれば成功です。

  • rootでログインできないこと
  • ポート22でログインできないこと
  • プレインテキストでログインできないこと
  • 別ユーザーでログインできないこと

などもテストします。

最後にひとこと

以上で設定完了です。

これで安心して外出先からSSHでサーバー操作ができますね。

今回はテスト環境でしたが、実際の運用にはサーバーが外部へ公開されている必要があります。

秘密鍵の作成方法や、ファイルの移動方法、ssh_configファイルの設定方法など、いろいろなやり方があるとは思いますが、あくまで私がいつも設定している方法の紹介でした。

こちらの記事もどうぞ

「Debian 7.7「wheezy」SSH設定とWindowsクライアントTeraTerm設定」への3件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です