パスワードなしでSSH接続する方法
この記事では、パスワードを入力せずにリモートサーバへSSH接続するための設置を説明します。
SSH接続のパスワード認証は手間
リモートサーバにSSH接続する際、以下のようにパスワードが求められることがあるかと思います。
bash
ssh xx.xx.xx.xx
user@xx.xx.xx.xx's password:
頻繁にSSH接続をする際、毎回このパスワード認証を行うのは手間だと感じたことがあるのではないでしょうか? このパスワード認証は、クライアント側で作成した公開鍵をリモートサーバに登録することでスキップすることができ、以下でその方法を説明します。
設定方法
クライアント側でキーペアを作成・リモートサーバに登録し、パスワード認証を回避する方法を説明します。手順は大まかに以下の通りです。
- クライアント側で、公開鍵/秘密鍵のペアを作成する。
- 秘密鍵のアクセス権限を変更する。
- リモートサーバに登録する。
.ssh/config
を修正する- 動作確認
1. クライアント側で、公開鍵/秘密鍵のペアを作成する。
クライアントマシンで以下のコマンドを実行し、公開鍵/秘密鍵のペアを作成しましょう。
ssh-keygen
細かい設定は必要に応じてでOKです。(よくわからなければ[Enter]
連打でOKです。)
↑の処理後、~/.ssh
配下に以下のファイルが作成されます。
id_rsa
: 秘密鍵id_rsa.pub
: 公開鍵
2. 秘密鍵のアクセス権限を変更する。
以下のコマンドを実行し、秘密鍵のアクセス権限を変更します。
chmod 600 ~/.ssh/id_rsa
3. リモートサーバに登録する。
以下のコマンドを実行し、公開鍵をリモートサーバに登録します。
ssh-copy-id -i ~/.ssh/id_rsa.pub [リモートサーバのユーザ名]@[リモートサーバのホスト名]
4. .ssh/config
の設定
~/.ssh/config
を以下のように編集します。
~/.ssh/config
Host hogehoge # 接続ラベル(任意の文字列)
Hostname xxx.xxx.xxx.xxx # リモートサーバのホスト名
User ubuntu # リモートサーバのユーザ名
Port 22 # 接続に利用するポート番号
IdentityFile ~/.ssh/id_rsa # 秘密鍵のパス
5. 動作確認
以下のようにssh接続するとパスワードを求められず、接続できることを確認できると思います。
# ssh <接続ラベル>
ssh hogehoge