初めまして、NUTMEG所属の廣池です。 今回はLinuxサーバーにsshする時、configファイルを使ってsshする方法を紹介したいと思います。
そもそもsshとは、Linuxサーバーに遠隔でログインする方法の一種です。
サーバーにログインする上で、悪意を持った人が勝手に操作できないようにするため、安全にログインするためにsshを使用します。
sshをする時にはshellに以下のように入力すると実行できます。
ssh -i ~/.ssh/id_rsa -l nutmeg 192.168.20.1
今回のケースでは-iで秘密鍵の場所の指定をして、-lでユーザー名とアドレスを指定しています。もっと短くsshをする書き方もありますが、いちいち一定の情報を覚えておかないといけないというデメリットがあります。
この問題を解決するためにconfigを使い予め設定を記憶させておく方法があります。
以下の項にやり方を書いていきます。
初めに公開鍵と秘密鍵を自分のPCで作成します。すでに作っている人はスキップしてconfigファイルの作成まで行ってください。
githubなどを使用している人で、鍵を既に作成した人が新しく鍵を作ってしまうと、公開鍵を登録し直す手間が発生してしまいます。 必ずチェックしてから作成してください。
以下のコマンドを実行していきます。
cd ~/.ssh
ssh-keygen
ssh-keygenを実行すると以下のようなのが表示され、ファイルの場所とパスワードを聞かれますが、全てエンターを押して実行してもらって大丈夫です。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ユーザー名/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
ここで.sshの中に入り、以下のようなコマンドを実行してみてください。
$ ls -a
id_rsa id_rsa.pub
id_rsaとid_rsa.pubがあれば鍵の作成は成功です。 id_rsaが秘密鍵でid_rsa.pubが公開鍵です。vscodeで開きたい時にはcodeコマンドで開けば中身が見れます。vimなどでも同様に確認できます。
サーバーの方に入り、自分のPCの公開鍵を登録する必要があります。
authorized_keysというファイルを作成し、そこに作成した公開鍵をコピペしてあげれば終了です。
ようやくconfigファイルの作成です。 cinfigファイルは自分のPCの.sshファイルに作成します。
今回はvscodeを使って書いていきます。エディタごとに作成のコマンドは違いますが、configの書き方は同じです。
cd ~/.ssh *ホームディレクトリから.sshまで移動
code config *configの作成
ここで作成したconfigに以下の文法に従い入力していきます。
Host 任意の接続名
HostName ホスト名
User ユーザー名
Port ポート番号
IdentityFile 鍵へのPATH(今回だと~/.ssh/id_rsa)
これでconfigファイルの設定は終了です。 sshしたいサーバーが増えれば、公開鍵をサーバーに登録して今回作成したconfigファイルに続けて記載していけば大丈夫です。
configの記入例
Host nutmeg
HostName ホスト名
User ユーザー名
Port ポート番号
IdentityFile 鍵へのPATH
Host gidai
HostName ホスト名
User ユーザー名
Port ポート番号
IdentityFile 鍵へのPATH
configの設定が終了したらあとは任意の接続名を使うだけで簡単にsshができます。
接続名をnutmegに設定した場合だと
ssh nutmeg
これでアクセスできれば設定は無事に終了です。 今度からはストレスなくサーバーにログインできるようになります!
今回はsshをするためのconfigの設定方法を紹介しました。 初心者が書いたので何か問題があれば教えてくれると幸いです。