AzureVM へのssh公開キーでの接続の方法です。
毎回パスワードを入力しなくても、この設定をすれば公開キーでのssh接続が出来るようになります。
環境
今回の私の環境は以下の通りです。
- macOS Catalina バージョン10.15.2
- iTerm2 Build 3.3.4
AzureVM はcentOSですが、特に関係ないです。またiTerm2ではなくても、標準搭載のterminalでも可能だと思います。
公開鍵の作成
ディレクトリは~/.ssh
で鍵をつくるほうが良いです。
$ cd ~/.ssh
.ssh
にパーミッションを割り当てます
$ chmod 700 ~/.ssh
ディレクトリが移動できたら、以下のコマンドを入力して、キーペアを作成します。
$ ssh-keygen -m PEM -t rsa -b 4096
``
このコマンドで4096ビット長の鍵を作ることができます。
次に以下のように聞かれるので、任意の値を入力します。
今回は`test-rsa`という鍵名の鍵を生成します。
```bash
Generating public/private rsa key pair.
Enter file in which to save the key : test-rsa
Enter passphrase (empty for no passphrase):(ここに任意のパスフレーズ。後で使うので忘れないように)
Enter same passphrase again:(パスフレーズを再入力)
Your identification has been saved in test-rsa.
Your public key has been saved in test-rsa.pub.
test-rsa.pub
が公開鍵です
以下の2つのファイルが生成されました
- test-rsa
- test-rsa.pub
AzureVMの設定
今回はすでに作成済みのVMをssh公開キー認証に変更します。
新規作成する際は、作成時にssh公開キーを選択するだけです。
Azureから仮想マシンを開き、左側のタブの サポート + トラブルシューティング
からパスワードのリセットを
選択します。
ssh公開キーのリセットを選択して、ユーザー名を入力します。
ssh公開キーには先程作成したtest-rsa.pub
を入力します
$ cat ~/.ssh/test-rsa.pub
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxx(略)xxxxxxxxxxxxxxxxxxxx yourname@MacBook-Air.local
上記のように表示されます(xの部分に鍵が入ります)ssh-rsa
から自分のMacのユーザー名(yourname@MacBook-Air.local)より手前をコピーしてAzureのssh公開キーの欄に入力します。
SSH configの設定
~/.ssh/
にconfig
を作成し、以下のように入力します
$ vim config
Host test(VMの名前)
HostName (VMのipアドレス または DNS名)
User (VM作成時のユーザー名)
IdentityFile ~/.ssh/test-rsa
Port 22
ssh-agentの設定
SSHサインインのたびに秘密キーファイルのパスフレーズを入力しなくてすむように、ssh-agent
を利用します。
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/test-rsa
Enter passphrase for /Users/yourname/.ssh/test-rsa: (先程設定したパスフレーズ)
SSHログイン
これでssh公開キーを使ってログイン出来るようになりました。
以下のコマンドです。
ssh (VMのユーザー名)@(VMのip または DNS名)
Are you sure you want to continue connecting (yes/no)? yes
(VMのユーザー名)@(VMのip または DNS名)'s password:
初回のみ、接続しても良いですか?と聞かれるのでyes
これも初回のみ先程設定したパスフレーズを聞かれるので入力
Done!!!!