SSHの問題を解決する方法を理解するのを手伝ってください。
Ubuntu 10.10'MaverickMeerkat 'を実行しているEC2インスタンスにSSHで接続できます。問題はありません。
$ ssh -i MyEC2Key.pem [email protected]
私が作成した新しいユーザーで同じことを試みると、問題が発生します。
$ ssh -i MyEC2Key.pem [email protected]
残念ながら、これを試してみると、次のエラーメッセージが表示されます。
許可が拒否されました(公開鍵)。
私は何が欠けているのか理解できず、これらのもののほとんどに比較的新しいです。私が欲しいのは、この新しいユーザーが管理者権限と完全なSSHアクセスを持つことだけです。これらは私が行った手順であり、すべてユーザーubuntuとしてリモートでログインし、vimで編集を行っています。誰かが私に何が欠けているのか、またはここで誤解しているのかを教えてくれれば幸いです。
/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として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).
両方のアカウントに同じキーを使用します。以下をせよ
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を実行できます。
パーミッションがあなたをディレクトリに連れて行っているようです。 /home/ser/.sshディレクトリに権限が正しく設定されていることを確認します。
chmod -R o-rwx ~/.ssh