AWS EC2 例項 SSH 無法登入故障
阿新 • • 發佈:2021-08-23
故障表現
在使用 jumperver
登入 AWS ec2
例項的時候發現 ssh
配合祕鑰登入的時候無法登入,
具體報錯如下:
ssh -i /path/xx.pem [email protected]
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
問題排查過程
在發現無法登入的第一時間等了AWS
平臺檢視底層監控是否正常
檢視到底層硬體工作正常,並沒有觀察到異常報錯。
通過檢視業務服務,發現業務服務並沒有收到影響。
那就說明,伺服器是沒有問題的,只是登入認證出了問題。既然服務沒有問題,接下來就慢慢排查就,就不著急了。
接著,嘗試用 aws
ssm (Amazon Systems Manager)
嘗試登入,發現能夠使用 ssm
登入。再次回到跳板機,執行
telnet 10.0.11.190 22
埠是通的。排除網路埠問題。檢視
ssh
登入日誌
ssh -i /path/xx.pem [email protected] -vvv
檢視 secure
日誌
tail -f /var/log/secure
問題解決
經過檢視日誌,總結如下:
1
當前是從跳板機,以ssh的方式連線到故障主機,但是在連線過程中遇到如下所示報錯:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
從ssh -vvv的debug日誌來看,ssh client端傳送了認證請求,但是ssh server端並沒有完成認證過程,導致permission denied報錯產生。
2
故障主機配置了SSM agent,並且可以通過session manager開啟。
在這個基礎上,在例項的/var/log/secure檔案中看到如下報錯內容:
authentication refused: bad ownership or modes for directory /home/ec2-user/
這個報錯的意思是說,/home/ec2-user/
目錄的owner或者mode存在一些問題。
經過檢視,/home/ec2-user/
將其修改為700後,問題得到解決,可以ssh登入到故障主機。
為什麼會有777的許可權呢?
為何會將 /home/ec2-user/
目錄下所有內容修改為 777
呢?
經過登入 Jumoserver
的審計發現,一名開發人員將 /home/ec2-user/
許可權改為了 777
原因是通過 Jumpserver
上傳檔案的時候沒有許可權,然後開發就自己將目錄給了 777
的許可權。
文章連結