【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に変更する。
クラウド環境で勉強するなら
書籍で勉強するなら

コメント