web-dev-qa-db-ja.com

.ssh / id_rsaが失敗しました:権限が拒否されました

私はWeb/SOをスキャンしていて、いくつかの許可を拒否しました。私が理解している方法で私の問題を解決するものを見つけることができません。

私はこれらの手順に従っています( Getting Started with Python on Heroku/Cedar )。すべてがうまくいくまで:

drewverlee@ubuntu:~/helloflask$ source venv/bin/activate
(venv)drewverlee@ubuntu:~/helloflask$ git Push heroku master

The authenticity of Host 'heroku.com (50.19.85.132)' can't be established.
RSA key fingerprint is ##:##:##:##:##:##:##:##:##:##:##:## (I replaced with #)
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the Host to the list of known hosts (/home/drewverlee/.ssh/known_hosts).
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

(セキュリティがわからないので、キーを(#)に置き換えました)

のせいかもしれません

drwx------  2 root       root        1024 2012-03-08 21:26 .ssh

なぜなら

drewverlee@ubuntu:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/drewverlee/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
open /home/drewverlee/.ssh/id_rsa failed: Permission denied.
Saving the key failed: /home/drewverlee/.ssh/id_rsa.

これらの問題の経験がほとんどない誰かとして、私は強力なツールをいじっていることを知っているので、安全に行ったことを元に戻す方法がわかりません。ここで何が起こっているかについてのアドバイスはありますか?問題を解決するためにさらに情報を含める必要があるかどうかをお知らせください。

18
Drew Verlee

自分のディレクトリで.ssh dirへのアクセス権を所有する必要がありますが、この場合、それはrootが所有しています。試す

cd ~
Sudo chown drewverlee .ssh

次に、キーの作成と接続を再試行します。

43
Mark Fisher

CentOS 6でも同じ問題が発生しました。selinuxを削除することで解決しました。

Sudo yum remove selinux*

ここで答えを見つけました

注:何をしているのかわからない場合は、盲目的にselinuxを削除することはお勧めできません。

4
Tom Walpole

何らかの理由で、〜/ .sshフォルダーのid_rsaファイルがユーザー(0400)に対して読み取り専用モードでした。私はそれを読み取り/書き込み(0600)に変更しました

chmod 0600 id_rsa

そして私が明らかにファイルを上書きすることができた後。他の人があまり意味をなさないので、これらはあなたがこのファイルに与えることができる最高の許可であると思います。

2
Phoenix87

私のユーザー(ubuntu-whoamiと入力するとわかります)は〜/ .sshフォルダーを所有していましたが、それでもssh-keygenからのシンボリックリンク(ファイル:〜/ .ssh/my_file_rsa)を使用できませんでした。したがって、私は〜/ .sshフォルダーにcdして、rsaファイル名の外部パスを指定しませんでした。

whoami
ls -Al ~

cd ~/.ssh
ssh-keygen
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):  my_file_rsa
1
Ian

上記の答えのどれも私にとってうまくいかなかったので。私は私の答えを投稿します:

  1. 古いSSHを削除
    Sudo rm -rf ~/.ssh/id_rsa Sudo rm -rf ~/.ssh/id_rsa.pub
  2. 新しいsshを生成して使用します( https://help.github.com/enterprise/2.15/user/articles/generating-a-new-ssh-key-and-adding-it-to-the-を参照) ssh-agent /

なぜ機能したのか:

  • Sudoコマンドで作成されたsshは、ユーザーではなくルートのsshです。この意味は ssh-add ~/.ssh/id_rsaは、ユーザーへのルートsshの追加に失敗します。
  • 新しいユーザーsshを生成しようとすると、古いユーザーはroot用に生成されたため、正常に置き換えることができません。

(何か問題がある場合は、私の答えを修正するように依頼してください。thx :)

1
Koke Cacao