web-dev-qa-db-ja.com

新しいユーザーとしてEC2で実行されているUbuntu10.10にSSHで接続できません

SSHの問題を解決する方法を理解するのを手伝ってください。

Ubuntu 10.10'MaverickMeerkat 'を実行しているEC2インスタンスにSSHで接続できます。問題はありません。

$ ssh -i MyEC2Key.pem [email protected]

私が作成した新しいユーザーで同じことを試みると、問題が発生します。

$ ssh -i MyEC2Key.pem [email protected]

残念ながら、これを試してみると、次のエラーメッセージが表示されます。

許可が拒否されました(公開鍵)。


私は何が欠けているのか理解できず、これらのもののほとんどに比較的新しいです。私が欲しいのは、この新しいユーザーが管理者権限と完全な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としてSSHでログインし、Sudo su robertを使用して、robertとしてログインできますが、それは私が必要とするものではありません-robertから直接SSHでログインできる必要があります。

デバッグフラグを使用してrobertとしてSSHで接続しようとした場合のデバッグ内容は次のとおりです。

$ ssh -v -i MyEC2Key.pem [email protected]  
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).  
2
Rob McCardle

両方のアカウントに同じキーを使用します。以下をせよ

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に必要な適切な権限も保持されます。

(いくつかの明らかな理由により、多数の承認済みキーを持つ2人の既存のユーザーに対して上記を行わないでください!-デフォルトの「ubuntu」ユーザーを使用してEC2で新しいユーザーを設定するための簡単なソリューションとしてのみ提案されています)

これで、次のことができるようになります。

ssh -i MyEC2Key.pem [email protected]

これが機能しない場合は、適切な制限付き権限があることを確認してください(/home/ubuntu/.sshと/home/robert/.ssh、およびauthorized_keysファイルの権限を比較してください)

それでも機能しない場合は、次の2つの方法があります。

1)robertのローカルマシンで新しいキーペアを生成し、公開キーを/home/robert/.ssh/authorized_keys(EC2インスタンス上)に追加します

手順はここにあります: http://www.ece.uci.edu/~chou/ssh-key.html

2)EC2では、sshがパスワードベースの認証を受け入れることを許可できます(デフォルトでは無効)。

Sudo nano /etc/ssh/sshd_config

変更します

PasswordAuthentication no

PasswordAuthentication yes

これにより、パスワードを使用してsshを実行できます。

4
Bilal Sheikh

パーミッションがあなたをディレクトリに連れて行っているようです。 /home/ser/.sshディレクトリに権限が正しく設定されていることを確認します。

chmod -R o-rwx ~/.ssh
3
toddward