さくらのVPSにSSHでログインする
はじめに
さくらのVPSにUbuntu16.04 LTSをISOイメージインストールの方法でインストールするの続きです。OSをインストールしてからローカル(自分のパソコン)の端末(Macでいうターミナル)を用いてSSH接続ができるまでの流れを書いていきます。
環境
さくらVPSサーバー(OSはUbuntu16.04 LTS)
ローカルでは仮想マシン(Virtualbox)下でUbuntu14.04 LTSをインストールしていてそこの端末上でsshなどのコマンドを打っている。
初期段階
OSのインストールが終わったあと端末上でssh接続しようとしました。
ssh -l root IPアドレス
のコマンドを打ちました。IPアドレスは契約した後に受信したメールに書いてありました。
しかしこれでは接続ができませんでした。というよりずっと処理中でエラーメッセージすら吐かなかったです。
原因
契約したサーバ側でSSHサービス(sshd)が起動していなかった。sshdが起動していないとsshができないのです。カスタムOSインストールでUbuntuを入れたときは分かりませんが、ISOイメージインストールでUbuntu16.04 LTSを入れたときはsshdが起動していないみたいです。
前回のさくらのVPSにUbuntu16.04 LTSをISOイメージインストールの方法でインストールするで新しくOSをインストールしたので、そこで決めたユーザー名とパスワードでログインしなければいけなかった。
基礎知識
設定に入る前に少し知識を洗っておきましょう。
SSHとは
ネットワーク通信(ここではローカル側とサーバー側)を暗号化してくれるプロトコル。
OpenSSHとは
SSHプロトコルを用いてネットワーク通信を行うソフトウェア。
ローカルからサーバー側にSSHでログインするには
ホスト名とユーザー名の二つで認証を行う必要があります。その認証にあたって必要なことは具体的には以下の事です。
1. ローカル側にサーバーのホスト公開鍵を登録する
これは自動的にしてくれるので手動で何かしなくてもいいです。
2. ローカル側の公開鍵をサーバーに登録する
これは自動ではないので後述しますがコマンドを入力してやります。
2はユーザー認証に使うのですが、ローカル側の公開鍵をサーバーに登録せずにパスワード(OSインストールしたときに登録したパスワード)でユーザー認証をすますことも可能です。ただし、パスワード認証はパスワードが特定されて情報が漏洩する可能性が高いため、パスワード認証はあまり推奨できません。
SSHの設定
まず、VNCコンソールを起動してその後に、sshdデーモンの設定ファイル(/etc/ssh/sshd_config
)を開きましょう。
ユーザー認証を、パスワード認証で許可する方法
-
PasswordAuthentication yes
の文を追加しましょう。 - ファイルを保存して再起動しましょう。(
sudo reboot
とコマンドを打ってください。)
これで、パスワードを用いて認証ができるようになりました。
次にローカル側で端末を開きます。そしてその端末上で
ssh ユーザー名@ホスト名
と打ちましょう。これでつながったはずです。
(以後VNCコンソールでなくてもローカル側でsshコマンドを打てばサーバーに接続できるようになった。)
ポート番号に関しては先ほど入力したポート番号です。ユーザー名はさくらのVPSにUbuntu16.04 LTSをISOイメージインストールの方法でインストールするで登録したユーザー名です。このコマンドを入力すると、パスワードが求められるのですが、これも前回登録したパスワードを用いてください。
ユーザー認証を、公開鍵で許可する方法
パスワード入力は先述の通り、セキュリティー上の問題があるのでなるべく使わない方がよいとされていて公開鍵を用いるこっちの認証方法の方がよくとられます。ここからはローカル側とサーバー側でややこしくなりますがついてきてください。
流れ
- 公開鍵の作成(ローカル側)
ローカル上で
ssh-keygen -t rsa
と入力しましょうenterキーを押していると~/.ssh/
というディレクトリができてそこにid_rsa
とid_rsa.pub
ができるはずです。 - 公開鍵をサーバー側にのっける(sftp) まずローカル側で
~/.ssh/
ディレクトリに移動して、sftp ユーザー名@ホスト名
とコマンドを打って、id_rsa
とid_rsa.pub
をput
してください。 - サーバーにのっけられた公開鍵を登録する(サーバー側)
ssh
でサーバーに接続した後に、ローカル側で転送されたid_rsa
とid_rsa.pub
を~/.ssh/
ディレクトリに移動させた後そのディレクトリ下でcat id_rsa.pub >> authorized_keys
と打ってください。これで公開鍵が登録されたことになります。また、パスワード認証をするのをやめたいので、/etc/ssh/ssh_config
ファイルのPasswordAuthentication yes
をコメントアウトさせておきましょう。 - 公開鍵を認証エージェントに登録する(サーバー側) 認証エージェントというのは何かという説明の詳細はここでは省きますが簡単に言うならば、いちいちユーザーが秘密鍵を作るのを省略してくれるデーモンの事です。
~/.ssh/
ディレクトリの下でssh-agent bash
とコマンドを打ちましょう。そのあとは- ssh-add // 認証エージェントに秘密鍵を登録する
- exit // 認証エージェントからログアウトする
###結果
以上によって、ローカル側から
ssh ユーザー名@ホスト名
と入力すると、パスワード認証を求められずに公開鍵認証を用いて、ssh接続できるようになりました。
次回
次はセキュリティーの設定をやっていこうと思います。
参考
Author And Source
この問題について(さくらのVPSにSSHでログインする), 我々は、より多くの情報をここで見つけました https://qiita.com/ijm/items/04cd6cc3e4eb5a5ff7b6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .