この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
はじめに
ssh接続の覚書です。
毎回忘れるたびに調べるのが面倒なのでまとめました。
最低限、用意するのは以下の通りです。
- server1(EC2)…ssh接続される側(sshサーバ)
- server2(EC2)…ssh接続する側(sshクライアント)
- セキュリティグループ…server1には22portを開けておきましょう。
早速始めましょう。
事前準備
実行対象: server1(sshサーバ)
sshd_configでパスワード認証を有効化
# パスワード認証の有効化ディレクティブをアクティベート
sed -i -r 's/#(PasswordAuthentication yes)/\1/' /etc/ssh/sshd_config
# パスワード認証無効化ディレクティブをコメントアウト
sed -i 's/PasswordAuthentication no/#&/' /etc/ssh/sshd_config
# sshdサービスを再起動して設定反映
systemctl restart sshd
ec2-userのパスワード設定
# パスワード認証用のパスワードを設定する。ssh-copy-idで公開鍵をコピーする際に求められる。
passwd ec2-user
一応の確認
# 今回の接続先ユーザはec2-userとする
su - ec2-user
# パーミッションが600であることを確認する
ls -lrt ~/.ssh/authorized_keys
# まだ公開鍵は登録されていないことを確認する
cat ~/.ssh/authorized_keys
実行対象: server2(sshクライアント)
key-pairを作成
# 公開鍵と秘密鍵のペアを作成する。
ssh-keygen
# 公開鍵(644)と秘密鍵(600)のパーミッションを確認する。
ls -rlt ./.ssh
以下、ssh-keygenの実行例。
※ Enterで保存場所やパスワード設定をスキップできる。
※ 鍵はサーバもろとも削除済みですのでご心配には及びません。
[root@ip-10-0-2-48 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ygRCNc1VP9vJ97pHvqdkNRFOeykuFpf9YOvZvKtGvYE root@ip-10-0-2-48.ap-northeast-1.compute.internal
The key’s randomart image is:
+—[RSA 2048]—-+
| ..oo …. o |
| . .o . = +|
| . . .o+o*.|
| . . +.++|
| . S o..B.+|
| o . . .E O+|
| o . =o|
| + o=|
| ..=B+|
+—-[SHA256]—–+
公開鍵をserver1にコピー
# 公開鍵をリモートサーバにコピーする。
ssh-copy-id ec2-user@${target_host}
以下、実行例
[root@ip-10-0-2-154 ~]# ssh-copy-id ec2-user@10.0.2.198
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host ‘10.0.2.198 (10.0.2.198)’ can’t be established.
ECDSA key fingerprint is SHA256:fqlyeI9tO9CPvpTc7wv/l2A/jSDeltY/7wIc9ZXYv9Y.
ECDSA key fingerprint is MD5:d6:8b:5f:6b:90:ff:5d:be:d2:7a:90:cc:68:37:7f:7f.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
ec2-user@10.0.2.198‘s password:Number of key(s) added: 1
Now try logging into the machine, with: "ssh ‘ec2-user@10.0.2.198’"
and check to make sure that only the key(s) you wanted were added.
ssh接続
実行対象: server2(sshクライアント)
ssh接続
# ssh接続する
ssh ec2-user@${target_host}
以下、実行例
[root@ip-10-0-2-154 ~]# ssh ec2-user@10.0.2.198
Last login: Sat Dec 23 08:21:36 2023
[ec2-user@ip-10-0-2-198 ~]$
コピーできているかもみてみましょう
# authorised_keysファイルを確認してみる(きっとあります)
cat ~/.ssh/authorized_keys
補遺 – パーミッションについて
ファイル/ディレクトリ | パーミッション | 数値表記 |
---|---|---|
.ssh/ ディレクトリ |
rwx------ |
700 |
authorized_keys ファイル |
rw------- |
600 |
公開鍵(例:id_rsa.pub ) |
rw-r--r-- |
644 |
秘密鍵(例:id_rsa ) |
rw------- |
600 |