sshコマンドでリモート接続
さくらのVPSサーバーのdebianにmac端末からリモート接続してみた
安全なssh接続の設定を覚えるためにリモート接続を設定してやってみました。
流れはMac OS X から Linuxサーバ へ、RSA 鍵を用いて SSH 接続する - joker8phoenix's diaryに大体まとめてありました(リンク先ではパスフレーズの設定を飛ばして試しているのでこの通りにはやりませんでした)。
1. そもそもsshってなに?
ssh
【 Secure SHell 】 セキュアシェル
sshとは、主にUNIXコンピュータで利用される、ネットワークを介して別のコンピュータにログインして操作するためのソフトウェアの一つ。通信経路が暗号化されるため、インターネットなどを経由しても安全にアクセスすることができる。
コンピュータ上で動作しているOSに利用者が指示を与えるためのシェル(shell)と呼ばれるプログラムの一種で、遠隔からコンピュータの操作画面を呼び出し、手元のコンピュータのキーボードなどで入力したコマンド(命令)などを送信して実行し、結果を受信して表示することができる。公開鍵暗号と秘密鍵暗号を組み合わせて通信経路を暗号化し、パスワードなどの認証情報や入力されるコマンド、出力された処理結果などをすべて暗号化して送受信する。
すんなり入ってきたものの、 公開鍵暗号と秘密鍵暗号が全然ピンと来なかったので調べてみた。
全くイメージできなかった僕にとってはここがわかりやすかったです。
4枚の図解でわかる公開鍵暗号 | パーソルテクノロジースタッフ株式会社
2. sshのインストールと設定
概要がわかったところで実際にsshをインストールして設定してみました。
まずはサーバー側(debian 9)にOpenSSHをインストール。
Debian GNU/Linux 4.0(etch)にOpenSSHをインストール - bnote
この時"/etc/ssh/sshd_config"の認証に関わるあたりを修正。
・Port 22 → 数字を任意の数字に変更。
(ポート番号について【3分で把握】ポート番号とは?と代表的なポート番号まとめ)
・PermitRootLogin yes → PermitRootLogin no
(Rootログインできなくする)
・PasswordAuthentication yes → PasswordAuthentication no
(パスワード認証を禁止して公開鍵認証に限定する)
上記の設定を有効にするためにsshdを再起動($ sudo /etc/init.d/ssh restart)。
3. 鍵の作成と設定
今回はmacから接続するのでmacでターミナルを起動しました。
(ここからはSSHなるものをよくわからずに使っている人のための手引書 - Qiitaを参考に進めています)
鍵暗号方式はオプション"-t"を使用してRSA鍵を作成しました。どれを指定すればいいのかわからなかったので調べて選びました。
暗号化とハッシュ化に関する基本的な事柄まとめ - Qiita
パスフレーズもしっかりと設定して、鍵の作成が完了。
scpコマンドを使ってコピーした公開鍵の情報をサーバーに送る。
やり方は参考にしたサイトの流れですんなりいけました。
あとはサーバー側でログアウトした後にmacからsshコマンドを使ってログインしておしまい。
ポート番号など自分が変更した設定で弾かれた場合はオプションで指定してログインするといけました。
【 ssh 】コマンド――リモートマシンにログインしてコマンドを実行する:Linux基本コマンドTips(80) - @IT
念のために上記のオプションでsshdが設定通りになっているか確認しました(パスワード認証でログインを試してみるにはssh コマンドでパスワード認証を指定して接続するオプション - Qiitaをするといけました)。
※実はここで確認した時に変更が反映されていなかったのでおかしいなと思ってサーバー側のsshdをもう一度確認してみたところ、設定の頭のコメントアウト(#記号)がついたままになっていて設定が無効になっていました。
コメントアウトを解除したらちゃんと反映されました。セキュリティに関わることなので、このうっかりは怖いですね。