新井製作所

勉強したことの記録です

さくらVPS上のサーバーにssh接続する

花壇のお花が綺麗です。 f:id:ayk4:20220326044931j:plain

自分用の覚書としてメモしています。

目的

  • ローカル環境からリモートでサーバー操作を安全に行うための設定。
    • 初期設定の22番ポートから任意のポート番号に変更を行う。
  • リモート接続するときに、都度パスワード入力作業を省略する。

環境

ローカルMac リモートDebian11 さくらVPS

手順

まずは、リモート側(さくらVPSVNCコンソール)で作業します。

sshをインストールする

# aptitude update
# aptitude install ssh

設定ファイルをコピーしバックアップを取る
やってもいいしやらなくてもOK

# cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.org

ssh設定の変更のためsshd_configファイルを編集します。

$ sudo vi /etc/ssh/sshd_config

設定を書き換えます。(編集のやり方を忘れた場合⇨) viコマンドについて詳しくまとめました 【Linuxコマンド集】
まずはrootユーザーのログインを禁止するためPermmitRootLoginをnoに変更します。

PermmitRootLogin no

編集が終わったら、変更を反映させるために再起動します。(再起動しないと反映されません)

# /etc/init.d/ssh restart

rootユーザーのログインを禁止できているか確かめます。 クライアント側(私の場合はMac)からssh接続してみます。 設定がきちんとできていれば、rootユーザーではログインできず、別の設定したユーザーからはログインできるはずです。

# rootユーザーではssh接続できない
❯ ssh root@000.000.000.000
root@000.000.000.0000: Permission denied (publickey).

# 別のユーザーではssh接続できる
❯ ssh username@000.000.000.000
username@000.000.000.000's password: #パスワードを入力

# 抜ける場合は「exit」か「logout」
username@ik0-000-00000:~$ exit

ユーザー認証用の鍵(キーペア)を作成する このまま放置するとセキュリティが甘すぎるので、公開鍵認証を設定します。 さくらVPS(VSCコンソール)で作業します。

$sudo vi /etc/ssh/sshd_config

#パスワード認証の許可
PasswordAuthentication yes
#チャレンジレスポンス認証を許可
ChallengeResponseAuthentication yes

# 設定を反映する
$ /etc/init.d/ssh restart

さくらVPS(VSCコンソール)で作業します。

# ディレクトリの作成
$ mkdir ~/.ssh

# 読込・書込・実行を許可する
$ chmod 700 ~/.ssh

sshフォルダのパーミッションを700にするのは、ディレクトリのアクセス権限を本人しか読み書きできない権限(700)にするという意味です。

Macターミナルで操作 鍵を作成します。

$ ssh-keygen -t rsa

鍵が作成されているかを確認します。

$ ls ~/.ssh/
id_rsa   id_rsa.pub

これで.sshフォルダの中に、 id_rsa秘密鍵)とid_rsa.pub(公開鍵)というファイルが作成されています。

ちなみに id_rsaRSA(※1)の鍵を表すファイル名です。 (※1)RSAとは...Rivest Shamir Adlemanの略。公開鍵の暗号化の一種。Rivestさんと Shamir さんとAdlemanさんが作った暗号で、解読の難しさから、さまざまな場面で使用されている。

Macで作った公開鍵をさくらサーバーへ送信します。鍵の名前はauthorized_keysです。

$ scp ~/.ssh/id_rsa.pub username@000.000.000.000:~/.ssh/authorized_keys

さくらVPS(VSCコンソール)で作業します。 公開鍵の設定ファイル(authorized_keys)のパーミッションを変更します。

$ cd ~/.ssh/
$ chmod 600 authorized_keys

なぜ600という数字なのかというと、パーミッション(権限)は公開鍵の場合は600か400になっている必要があります。権限を600にするか400にするかは、どちらでも構いません。600の場合はファイルの所有者に読み取り、書き込み権限が付きます。 400にした場合は、読み取り権限のみが付きます。

$ sudo vi /etc/ssh/sshd_config
#ポート番号を指定。(※2)
Port <ポート番号>
#パスワード認証を禁止
PasswordAuthentication no
#チャレンジレスポンス認証を禁止
ChallengeResponseAuthentication no

設定を反映する

$ /etc/init.d/ssh restart

(※2)この時、ポート番号の前についている#を消し忘れないように!ついたままだと反映されません。(私はこれに小1時間気づかず悩みました。。。)

Macターミナルで操作 無事接続ができれば、認証鍵でのssh接続は完了です。

# ポート番号を指定してログイン
$ ssh -p 54321 username@000.000.000.100

参考

【さくらVPS】OS再インストールして、鍵認証でSSH接続する

ssh公開鍵認証を実装する - Qiita

SSH公開鍵認証で接続するまで - Qiita