まひろ量子のハックログ

プログラミングや機械学習などの知識を記録・共有します

【1分でわかる】Linuxに新たな秘密鍵でSSHログインする方法

f:id:twx:20190506150008p:plain
SSH鍵

以下ではUbuntuを前提として話を進めます。

接続先Ubuntuに新規ユーザを作る

まず、適当なアカウントで接続先Ubuntuにログインします。 新たなユーザを作るコマンドを実行します。以下、hogeという名前のユーザを作成するという体で説明します。

# 新規ユーザ作成
sudo useradd -m hoge

# sudoに追加
sudo gpasswd -a hoge sudo

# パスワードを設定
sudo passwd hoge # 任意のパスワードを設定

# 使用するシェルを設定
sudo chsh hoge # /bin/bash と打ってEnter

以上でユーザが作成されました。

SSH鍵の作成

接続元の端末で以下のコマンドを実行して公開鍵・秘密鍵を作ります。

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): # ← 分かりやすい名前をつけること。例: ./aws-ec2-user-hoge
Enter passphrase (empty for no passphrase): # ← 任意のパスワードを設定できる。空欄でも良い。
Enter same passphrase again: # パスワードの確認

Enter file in which to save the keyの項目で例えば ./aws-ec2-user-hoge と入力した場合、カレントディレクトリにaws-ec2-user-hogeaws-ec2-user-hoge.pubという2つのファイルが生成されます。お尻に.pubと付いている方が公開鍵で、もう一方が秘密鍵です。

公開鍵の転送

以下では、接続先Ubuntuにhogeという名前のユーザでログインしたいとして説明します。

接続先Ubuntuの

/home/hoge/.ssh/authorized_keys

というファイルに、先程の公開鍵(※秘密鍵ではない)をコピー&ペーストします。このフォルダやファイルが存在しない場合は新規作成してください。

次に、このファイルの所有者とパーミッションを変更します。

sudo chown -R hoge /home/hoge/.ssh
sudo chgrp -R hoge /home/hoge/.ssh
sudo chmod 0700 /home/hoge/.ssh
sudo chmod 0600 /home/hoge/.ssh/authorized_keys

以上で、SSHログインできるようになりました。

接続テスト

接続元端末で以下を実行してください。ログインできるようになっているはずです。

ssh hoge@xxx.xxx.xxx.xxx -i aws-ec2-user-hoge

以上、今回はUbuntuに新たなユーザを作成し秘密鍵でSSHログインできるようにしてみました。良い記事だと思っていただいた方は、SNSでのシェア、ブログからのリンク、「読者になる」ボタンのクリック、「★」ボタンのクリック、よろしくお願いします!

Kozuko Mahiro's Hacklog ―― Copyright © 2018 Mahiro Kazuko