【Linux】公開鍵認証方式の使い方【ssh接続】
ssh接続での認証方式は
- パスワード認証方式
- 公開鍵認証方式
があります。
パスワード認証方式では、ユーザーIDとパスワードによって接続されてしまうため、安全性の低い接続方法と考えられます。
ブルートフォースアタック(総当たり攻撃)のように、パスワードが特定されてしまうおそれがあるためです。
今回はより安全性が高い認証方法として公開鍵認証方式での接続方法をご紹介します。
パスワード認証方式でのssh接続
パスワード認証で接続する場合にはssh "ユーザーID"@"接続先のIPアドレス"
を入力します。
ssh username@111.222.33.44
パスワードが求められるので、パスワードを入力するとログインできます。
始めて接続する場合には
Are you sure you want to continue connecting (yes/no)?
と求められるのでyes
とします。
公開鍵認証方式によるssh接続
公開鍵認証方式とは、あらかじめ接続のためのキーを作成し、それを使って認証する方式です。鍵には
- 秘密鍵
- 公開鍵
の二種類があり、クライアント側に「秘密鍵」を、サーバー側に「公開鍵」を設置します。
公開鍵認証でのssh接続方法
ssh -i keyfile username@111.222.33.44
引数に、-i
として秘密鍵のファイルを指定します。
あとは、同じようにユーザー名と接続先を記載します。
鍵の作り方
鍵はssh-keygen
で作れます。
ssh-keygen
ホームディレクトリの~/.ssh
ディレクトリに
- id_rsa(秘密鍵)
- id_rsa.pub(公開鍵)
が作成されます。
公開鍵は、サーバー内の~/.ssh/authorized_keys
に転記します。
公開鍵の設置
公開鍵の転送はscp [クライアントのファイルパス] [ユーザー名@IPアドレス:ファイルの場所]
とします。
scp .ssh/id_rsa.pub username@server:~/.ssh
サーバーに入り、authorized_keys
を作成します。
$ cat id_rsa.pub >> authorized_keys
不要になった公開鍵[id_rsa.pub]
は削除します。
rm id_rsa.pub
これで公開鍵の設置が出来ました。公開鍵認証で接続できるか試してみます。
ssh -i id_rsa username@server
接続できればOKです。もし接続できなければ権限設定を確認してください。
権限設定の確認(接続できない場合)
$ chmod 755 ~
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
パスワード認証の無効
パスワード認証を無効化する場合には、~/etc/ssh/ssh_config
から
# PasswordAuthentication yes
↓
PasswordAuthentication no
あわせてroot
ログインを無効にする場合には
PermitRootLogin yes
↓
PermitRootLogin no
に変更する。
クラウド環境で勉強するなら
書籍で勉強するなら
コメント