報錯詳情
在終端下通過ssh連接亞馬遜雲服務器具體報錯如下:
# wedo @ mjo in ~/.ssh [10:55:25] C:255
$ ssh -i manjaro.pem ec2-user@xx.xx.xx.xx
The authenticity of host 'xx.xx.xx.xx (xx.xx.xx.xx)' can't be established.
ECDSA key fingerprint is SHA256:BzknItgds/gHJLtjp6kZ+wnAmlb2Op9ss7G3fonn/5I.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '1xx.xx.xx.xx' (ECDSA) to the list of known hosts.
ec2-user@xx.xx.xx.xx: Permission denied (publickey).
環境說明
亞馬遜雲EC2創建操作系統實例的時候都需要你先創建一個密鑰,然后ssh通過加載這個密鑰來遠程連接雲服務器的終端.
報錯原因
原因很簡單:用戶名錯了
把用戶名改下就可以了
一般操作系統(Linux)的用戶名為:ec2-user
使用這個用戶名的操作系統一般為:AWS自己的Linux系統,RedHat操作系統
另外Ubuntu系統的用戶名為:ubuntu
Centos系統的用戶名為:centos
總結
可以把.pem認證文件放在${HOME}目錄下的.ssh目錄下
比較麻煩的連接方式為:
ssh -i xxx.pem ec2-user@xx.xx.xx.xx
xxx.pem就是EC2實例的認證文件。
成功登入aws服務器.
命令好長啊,好難輸入啊,有沒有更好的方式呢?
可以把xxx.pem認證文件add到ssh里后面就不用每次都指定了:
xxx.pem文件預加載到ssh:
ssh-add xxx.pem
執行ssh-add時出現Could not open a connection to your authentication agent
若執行ssh-add /path/to/xxx.pem是出現這個錯誤:Could not open a connection to your authentication agent,則先執行如下命令即可:
ssh-agent bash
更多關於ssh-agent的細節,可以用 man ssh-agent 來查看
后面再連的時候只需要輸入:
ssh ec2-user@xx.xx.xx.xx
還有有點長,有沒有更好的方式呢?
把這個命令指定一個別名,后面連的時候只輸入別名主可以了:
在.bashrc配置文件下添加上面的命令:
vim .bashrc
# 添加如下配置
alias sshec2='ssh ec2-user@xx.xx.xx.xx'
記得source一下:
source .bashrc
然后就可以輸入下面的命令直接連了:
sshec2
OK,這樣是不是就很簡單了