以下では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-hoge
とaws-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でのシェア、ブログからのリンク、「読者になる」ボタンのクリック、「★」ボタンのクリック、よろしくお願いします!