MATHGRAM

主に数学とプログラミング、時々趣味について。

AWSにターミナルからsshで接続する(自分メモ)

完全に自分メモです。

ホストに接続する

  1. AWSでEC2インスタンスを立ち上げる。
  2. 下にある説明の部分でIPアドレス(パブリックIP)を確認する。
  3. ssh -i ~/.ssh/[key_name] [user_name]@[IPアドレス] で接続完了。

つまづいたことがある部分

  • "Operating timed out"のエラーが出た。

対処法:

  1. セキュリティグループのインバウンドルールにSSH(送信元:0.0.0.0/0)が設定されているか確認する。
  2. chmod 400 [key_name] で権限の変更をしていたか。
  3. 絶対パスで鍵の場所を書いたらいけたりした。(謎) 今いるディレクトリをもう一度確認すること。

ユーザごとにssh公開鍵暗号を作成して接続

  • rootにパスワードを与える。
[ec2-user@instance ~]$ sudo su -
[ec2-user@instance ~]$ passed
  • 新規のユーザを作成する
[ec2-user@aws ~]$ sudo su -
[root@aws ~]# adduser test-user
[root@aws ~]# passwd test-user
  • sudo実行時にパスワードなしで行けるようにする。
[root@aws ~]# echo "test-user ALL=(ALL) ALL NOPASWD: ALL" > /etc/sudoers.d/test-user
[root@aws ~]# chmod 440 /etc/sudoers.d/test-user
  • 鍵を作成する(これはローカルで)
[user@local ~]$ ssh-keygen -t rsa
  • 鍵をサーバに送る(ローカル)
[user@local ~]$ scp -i [user_nameに入る時の鍵] ~/.ssh/id_rsa.pub [user_name]@[IP_address]:~/id_rsa.pub
  • 鍵を設置する
[root@aws ~]# su  test-user
[test-user@aws ~]$ mkdir .ssh
[test-user@aws ~]$ sudo mv /home/ec2-user/id_rsa_ec2.pub .ssh/authorized_keys
[test-user@aws ~]$ sudo chown test-user. .ssh/authorized_keys
[test-user@aws ~]$ sudo chmod 600 .ssh/authorized_keys
[test-user@aws ~]$ sudo chmod 700 .ssh/

つまづいたことがある部分

次のエラー

Permission denied (publickey).
lost connection
scp -i [ホストの鍵] ~/.ssh/id_rsa.pub [user_name]@[ip address]:~/id_rsa.pub

ここで、ホストの鍵を選択してなかった。ここは".pem"で繋げる。