Ubuntu

無法以新使用者身份通過 SSH 連接到在 EC2 上執行的 Ubuntu 10.10

  • June 11, 2019

請幫助我了解如何解決我的 SSH 問題:

我可以通過 SSH 連接到我的執行 Ubuntu 10.10 ‘Maverick Meerkat’ 的 EC2 實例,這沒有問題:

$ ssh -i MyEC2Key.pem ubuntu@ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com

當我對我創建的新使用者嘗試同樣的事情時,我的問題就出現了:

$ ssh -i MyEC2Key.pem robert@ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com

不幸的是,在嘗試此操作時,我收到以下錯誤消息:

權限被拒絕(公鑰)。


我不明白我錯過了什麼,並且對大多數這些東西都比較陌生。我想要的只是讓這個新使用者擁有管理員權限和完整的 SSH 訪問權限。這些是我經歷過的步驟,都以使用者 ubuntu 遠端登錄並使用 vim 進行編輯。如果有人可以讓我知道我在這裡缺少什麼或誤解了什麼,我將不勝感激。

  • 我創建了一個名為 robert 的新使用者
  • 我已將該使用者添加到組管理員
  • 我已將以下內容添加到/etc/sudoers
root    ALL=(ALL) ALL   (that line was already there)  
robert ALL=(ALL) ALL    (that line was what I added)
  • 我已將以下行添加到/etc/ssh/sshd_config
AllowUsers robert ubuntu root
  • 我已經重新啟動了 ssh 守護程序
  • 我已經以 ubuntu 身份註銷並嘗試在新終端中以 robert 身份重新登錄

還是卡住了。只是為了進行完整性檢查,是的,我可以通過 SSH 登錄為 ubuntu 並使用 sudo su robert 以 robert 登錄,但這不是我所需要的 - 我需要能夠直接以 robert 身份登錄。

以下是嘗試以帶有調試標誌的 robert 進行 SSH 的調試內容:

$ ssh -v -i MyEC2Key.pem robert@ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com  
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009  
debug1: Reading configuration data /etc/ssh_config  
debug1: Connecting to ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com [XX.XXX.XX.XXX] port 22.  
debug1: Connection established.  
debug1: identity file MyEC2Key.pem type -1  
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-4ubuntu4  
debug1: match: OpenSSH_5.5p1 Debian-4ubuntu4 pat OpenSSH*  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_5.2  
debug1: SSH2_MSG_KEXINIT sent  
debug1: SSH2_MSG_KEXINIT received  
debug1: kex: server->client aes128-ctr hmac-md5 none  
debug1: kex: client->server aes128-ctr hmac-md5 none  
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent  
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP  
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent  
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY  
debug1: Host 'ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com' is known and matches the RSA host key.  
debug1: Found key in /Users/robmccardle/.ssh/known_hosts:4  
debug1: ssh_rsa_verify: signature correct  
debug1: SSH2_MSG_NEWKEYS sent  
debug1: expecting SSH2_MSG_NEWKEYS  
debug1: SSH2_MSG_NEWKEYS received  
debug1: SSH2_MSG_SERVICE_REQUEST sent  
debug1: SSH2_MSG_SERVICE_ACCEPT received  
debug1: Authentications that can continue: publickey  
debug1: Next authentication method: publickey  
debug1: Trying private key: MyEC2Key.pem  
debug1: read PEM private key done: type RSA  
debug1: Authentications that can continue: publickey  
debug1: No more authentication methods to try.  
Permission denied (publickey).  

為兩個帳戶使用相同的密鑰。請執行下列操作

sudo cp -r /home/ubuntu/.ssh /home/robert/
cd /home/robert
sudo chown -R robert:robert .ssh

這只會將與您的私鑰 (MyEC2Key.pem) 對應的公鑰複製到 robert 的帳戶。這也將保留 /home/robert/.ssh/authorized_keys 所需的適當權限。

(出於幾個明顯的原因,請不要對擁有多個授權密鑰的兩個現有使用者執行上述操作!–僅建議作為使用預設“ubuntu”使用者在 EC2 上設置新使用者的簡單解決方案)

現在您應該能夠執行以下操作:

ssh -i MyEC2Key.pem robert@ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com

如果這不起作用,請確保您具有正確的受限權限(比較 /home/ubuntu/.ssh 和 /home/robert/.ssh 以及 authorized_keys 文件的權限)

如果它仍然對您不起作用,則有兩種選擇:

1)在robert的本地機器上生成一個新的密鑰對,並將公鑰添加到/home/robert/.ssh/authorized_keys(在EC2實例上)

說明可以在這裡找到:http: //www.ece.uci.edu/~chou/ssh-key.html

  1. 在 EC2 上,您可以允許 ssh 接受基於密碼的身份驗證(預設禁用)。
sudo nano /etc/ssh/sshd_config

並修改

PasswordAuthentication no

PasswordAuthentication yes

這將允許您使用密碼進行 ssh。

引用自:https://serverfault.com/questions/288150