renderにホスティングしてるサーバーを操作したり、mysqlをいじったりしたいと思った時に、自分のパソコンのターミナルでやりたいと感じたので、今回はrenderでssh接続できるようにしてみようと思います。
SSHとはどういう仕組みなのか
SSHとは、Secure Shell
の略で遠隔にあるコンピューターを操作するための通信プロトコルのことです。
通信を暗号化して行うため外部からの攻撃を防ぎ、安全に通信できるようになります。
公開鍵暗号方式
SSH接続をするためにいくつか暗号方式ができるのですが、今回使用する暗号方式は公開鍵暗号方式を使用します。
この記事で作成した画像で説明します:https://qiita.com/maooz4426/items/c8606125e31543b1001a
これはクライアントとなる接続元が、誰にでも渡せる公開鍵
とクライアントだけが保持する秘密鍵
を生成します。
サーバーをGithubのアイコンとしています。
秘密鍵はクライアントに、公開鍵をサーバーに渡して、認証していきます。
まず、クライアントがサーバーにリクエストします。
そしてサーバーはレスポンスとして公開鍵で生成した乱数から暗号化した電子署名を送ります。
それをクライアントは秘密鍵で復元します。
復元して解読した署名をサーバーが受け取ると認証するという仕組みです。
鍵を作成する
ssh-keygen
コマンドを使用して、秘密鍵と公開鍵を作成します。
また、下のコマンドを打った後、パスキーを入力することになります。
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_render
今回使用しているoptionは以下のようになっています。
オプション | 役割 |
---|---|
t | 暗号方式(ed25519,rsa) |
f | ファイル名のパスを決定する(ファイルの保存位置とファイル名を決める) |
作成されたファイルは以下のようになっています。
ファイル名 | 何鍵 |
---|---|
id_ed25519_render | 秘密鍵 |
id_ed25519_render.pub | 公開鍵 |
macのkeycahinに秘密鍵を登録します。
こうすることでssh接続を行う際にパスフレーズを聴かれないようにしています。
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_render
pbcopyコマンドで出力結果をクリップボードにコピーすることができます。
今回はこれでコピ-します。
pbcopy < ~/.ssh/id_ed25519.pub
renderのAccountSettingsにsshを登録する箇所があります。
ここのKeyに先ほどpbcopyでコピーした結果を貼り付けます。
こうすることでssh接続を行うことができます。
ssh接続のコマンドは画像の部分にssh user名@Host名
の形式で書かれています。
このコマンドをターミナルで打つことでssh接続することができます。