AWS 設定免 ppk 檔登入方式(更新0644問題)


方式一:

在AWS上建立完你的主機後,先把 .pem 檔保留好,

接下來可以使用以下指令,透過 .pem 檔進行登入

ssh -i ~/路徑/密鑰名稱.pem ec2-user@IP

MacBook-Pro % ssh -i server-key.pem ec2-user@1.31.37.203
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'server-key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "server-key.pem": bad permissions
ec2-user@1.31.37.203: Permission denied (publickey).

如果出現 Permissions 0644 for pet are too open.
代表你的pem權限開太高了,需要將pem的權限改為 0600 (Owner 可進行讀、寫,其它用戶則不能使用讀、寫、執行的權限)

MacBook-Pro % sudo chmod 600 server-key.pem

方式二:

在 AWS 開 Linux EC2 後預設的登入方式

  1.  必須用 .pem 轉 .ppk 後使用 putty 登入
  2.  只能用 user 帳號 ec2-user 登入
  3. 登入後僅 user 權限, root 權限指令需加 sudo 從 user 權限切換到 root 權限

完成方式一或二後如需要改成,免ppk 檔登入方式,流程如下:

先將權限改成 root,這邊再設定你的root 新的密碼

[root@ip-1-31-37-203 ~]# sudo su
[root@ip-1-31-37-203 ~]# passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

接下來,修改 sshd_config 檔

[root@ip-1-31-37-203 ~]# vi /etc/ssh/sshd_config

修改

  1. PermitRootLogin (修改 ssh 允許可使用 root 帳號登入)
  2. PasswordAuthentication (修改 ssh 登入時 root 可不使用 .ppk 檔)
30 # Logging
31 #SyslogFacility AUTH
32 SyslogFacility AUTHPRIV
33 #LogLevel INFO
34 
35 # Authentication:
36 
37 #LoginGraceTime 2m
38 PermitRootLogin yes #(將 no 改成 yes )
39 #StrictModes yes
40 #MaxAuthTries 6
41 #MaxSessions 10
...
...
...
60 #IgnoreRhosts yes
61 
62 # To disable tunneled clear text passwords, change to no here!
63 PasswordAuthentication yes #(拿掉註解)
64 #PermitEmptyPasswords no
65 #PasswordAuthentication no #(此段註解)
66 
67 # Change to no to disable s/key passwords

重新啟動 sshd

[root@ip-1-31-37-203 ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

修改 authorized_keys 登入後的提示文字

[root@ip-1-31-37-203 ~]# vi /root/.ssh/authorized_keys

將 command=”echo ‘Please login as the user \”ec2-user\” rather than the user \”root\”.’;echo;sleep 10″ 移除

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABEAQC/HppD0JH//gslIHrVa2Ro9J/6mm5FLWT6iTiZZ6bTO7Z56DCCMVPMmvGbfGfpu9mJiqyFgnj8Qib8UIi7o+qbIxLwhsXCC2RJE844xmDGKxdrzomvAcBwOCQcjT1fW1SpAAeNDBLCVmDwbyYSsiEoCreIag4lApnbFl/gJJR3k3yJ6KrSa3vM+EJj2OYWYhnWX8Xm17xLTqhe5E7+WASu/ZJ02/cK1E29asUeNDD+auO2hVbtQX5vAQKxquVWKiINkNMoesSy5tYnQGD2z0wyT72Qf+35MQMzTC5n/qwF8yiXvMUKWQmNafBdj9FBOz3tzdmVdrwCK4lYqmi00Dw0zp name-function~

重新啟動 sshd

[root@ip-1-31-37-203 ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

之後使用 root 登入時, 若配合 .ppk 則可直接登入, 若無配合則可輸入 root 密碼

,