プログラミング

VPSにssh接続する際の設定を見直した

タイトル通りなのですが 現在、さくらVPSをレンタルして このブログとタイポグリセミアクイズを公開しています。

VPSにssh接続をする際毎回パスワードを入力するのがめんどくさいなあと思い 色々設定を見てみました。

公開鍵を使用してパスワードなしでサーバーへ接続する

鍵を生成する

クライアント(自分のpc)のターミナルに以下のコマンドを入力すると鍵を使用するためのパスフレーズを登録するよう求められます。入力しなくても大丈夫ですがその分セキュリティは下がりますのでご自身でご判断を・・・

 ssh-keygen -t rsa 

(rsaじゃない方がいいという意見もありますが詳しくはわからない・・)

パスフレーズを登録すると ~/Users/ユーザー名/.ssh にid_rsa とid_rsa.pubというファイルが作成されていると思います。

(多くの解説サイトでは~/home/.ssh と書かれていましたがましの環境ではUsersの中でした・・環境によって違うぽいです)

  • 公開鍵をサーバーへ登録する

まずは公開鍵をサーバーへ送ります(もしかしたらしなくてもいいかも?)

以下のコマンドをクライアント側のターミナルに入力します。

scp /Users/ユーザー名/.ssh/id_rsa.pub リモートユーザー名@ホスト名:~/.ssh

そして公開鍵をサーバーに登録します

ssh-copy-id ~/.ssh/id_rsa.pub 

をサーバー側のコマンドラインに入力する。または

ssh-copy-id /Users/ユーザー名/.ssh/id_rsa.pub リモートユーザー名@ホスト名

をクライアント側ターミナルに入力しても大丈夫なはず

実際にログインしてみる

ssh -i /Users/ユーザー名/.ssh/id_rsa リモートユーザー名@ホスト名

を入力して接続します。

初回は秘密鍵のパス(場所)指定が必要ですが次回以降は

ssh リモートユーザー名@ホスト名

で接続できると思います。

秘密鍵のパスフレーズ入力を省略する

毎回毎回秘密鍵のパスフレーズを入力していたらリモートユーザーのパスワードを乳力するのと同じくめんどくさいので秘密鍵のパスフレーズ入力を省略します。

ssh-add /Users/ユーザー名/.ssh/id_rsa 

パスフレーズを入力すると次回以降パスフレーズの入力が省略されるはずです。

リモートユーザー名@ホスト名 も簡単にする

毎度 長いコマンドを入力するのがめんどくさいので

ターミナルで.ssh ファイルの中に移動した後

vim config

を入力し

Host 好きな名前

User リモートユーザー名

Hostname ホストのIPアドレス or ホスト名

IdentityFile /Users/ユーザー名/.ssh/id_rsa

を入力し、保存することですることで

ssh 好きな名前

で接続することができます。

 

リモートユーザーのパスワード認証を無効化する(しなかった)

本来ならばssh接続を有効にしたためパスワードでの認証は無効化しても良いのですが MacBookが潰れる可能性の方も高いなと思ったので一応有効にしてあります。(おそらくMacBookが潰れるとVPSの設定画面からなんとかするしかない)

 

 

参考サイト

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

 

ssh-copy-idで公開鍵を渡す

 

SSH接続のパスフレーズ入力を省略する設定方法