web-dev-qa-db-ja.com

ホストを既知のホストのリストに追加できませんでした

Mac OSX Lion 10.7。

奇妙な環境のもの(homebrewはwgetをインストールしておらず、あらゆる種類の奇妙なブロックとエラーがありました)を回避するために、zschrcとhomebrewおよびその他のものをアンインストールしてから、魚のシェルをインストールしました。

さて、githubにプッシュ/プルしようとすると、このエラーが発生します:

The authenticity of Host 'github.com (204.232.175.90)' can't be established.
RSA key fingerprint is <string of colon-separated chars that I should probs keep private>.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the Host to the list of known hosts (/Users/sasha/.ssh/known_hosts).

だから私は私の〜。/ sshフォルダーの許可を確認しようとしましたが、これは私には見た目が良いです:

-rw-r--r--  1 sasha  staff    97B Jul  9 22:56 config
-rw-------  1 sasha  staff   1.7K May 16  2012 id_rsa
-rw-r--r--  1 sasha  staff   403B May 16  2012 id_rsa.pub
drwx------  5 sasha  staff   170B Jul 15 09:56 known_hosts

Known_hostsにあるものはすべて、Amazon ec2インスタンスへのssh'ing(「authenticity ...」プロンプトも使用)に使用したpemファイルですが、物事が必死になったときにid_rsaとid_rsa.pubをコピーしようとしました。

何が起こっているのでしょうか?これを修正したいので、プッシュ/プルを何度も促されることはありません。

EDITしばらく前に これらの指示 に成功したので、Githubにsshキーがあります。再認識されたので、ssh -T [email protected]を実行すると、

Hi sashafklein! You've successfully authenticated, but GitHub does not provide Shell access.

私のlocalコンピューターだけが私のsshの状況に満足していないようです。

47
Sasha

Known_hostsはディレクトリではなくフラットファイルであるべきではありませんか?

それが問題でない場合は、Githubの このページ が役立つ場合があります。 -vまたは-vvフラグを指定してSSHを使用して、詳細なエラーメッセージを確認してください。これにより、何が失敗しているかをよりよく知ることができます。

18
CXJ

特定のケースでは、known_hostsはフォルダーであるため、最初に削除する必要があります。

同様の問題が発生している他の人については、~/ssh/known_hostsが別のユーザー(ルートなど)によって所有されている可能性があるため、適切な権限を確認してください。だからあなたは実行しようとするかもしれません:

Sudo chown -v $USER ~/.ssh/known_hosts

それを修正します。

107
kenorb

Ubuntuのユーザーの場合、次のエラーが表示される場合:

ホストを既知のホストのリストに追加できませんでした

次に、known_hostsファイルを削除して、sshを再実行します。これにより、適切な権限でknown_Hostファイルが再生成され、sshしようとしているリモートホストがこのファイルに追加されます。

25
Kingz

OPの問題は、〜/ .ssh/known_hosts(ファイルではなくフォルダーでした)を削除することで解決されると思います。しかし、この問題を抱えているかもしれない他の人のために、私は私のサーバーの1つが奇妙な許可を持っていることに気付きました(400):

-r--------. 1 user user 396 Jan 7 11:12 /home/user/.ssh/known_hosts

そこで、所有者/ユーザーPLUS書き込みを追加して、これを解決しました。

chmod u+w ~/.ssh/known_hosts

副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example。 〜/ .ssh/known_hostsはフラットファイルである必要があり、所有者である必要があり、読み取りと書き込みができる必要があります。

いつでもknown_hostsの破産を宣言し、それを削除し、通常通りに作業を続けることができます。物事(git/ssh)に接続すると、正常に機能する新しいknown_hostsが再生成されます。

18
Peter Dietz

これは私が必要とするソリューションです。

Sudo chmod 700 ~/.ssh/
Sudo chmod 600 ~/.ssh/*
Sudo chown -R ${USER} ~/.ssh/
Sudo chgrp -R ${USER} ~/.ssh/
8
Stoney Eagle

さて、理想的なパーミッションは次のようになります
sshディレクトリの場合(ls -ld ~/.ssh/と入力すると取得できます)
drwx------ 2 oroborus oroborus 4096 Nov 28 12:05 /home/oroborus/.ssh/

dはディレクトリを意味し、rwxはユーザーoroborusが読み取りと書き込みと実行の許可を持っていることを意味します。ここでoroborusは私のコンピューター名です。$ USERをエコーすることであなたのコンピューター名を見つけることができます。 2番目のoroborusは実際にはグループです。各フィールドの意味 ここ について詳しく読むことができます。これを学ぶことは非常に重要です。なぜなら、ubuntu/osxに取り組んでいる場合、またはLinuxのディストリビューションの可能性がある場合は、再び遭遇するからです。

許可をこのようにするには、入力する必要があります
Sudo chmod 700 ~/.ssh

バイナリの7は111で、読み取り1、書き込み1、実行1を意味します。同様のロジックで6をデコードできます。読み取りと書き込みのアクセス許可のみです。

ユーザーに読み取り、書き込み、実行の許可を与えました。ファイルの許可がこのようになっていることを確認してください。

total 20
-rw------- 1 oroborus oroborus  418 Nov  8  2014 authorized_keys
-rw------- 1 oroborus oroborus   34 Oct 19 14:25 config
-rw------- 1 oroborus oroborus 1679 Nov 15  2015 id_rsa
-rw------- 1 oroborus oroborus  418 Nov 15  2015 id_rsa.pub
-rw-r--r-- 1 oroborus root      222 Nov 28 12:12 known_hosts

ここで、すべてのファイルに対して、ここでユーザーに読み取り/書き込み権限を付与しました。 ls -l ~/.ssh/と入力すると、これを確認できます

この問題は、sshがフォルダー内のknown_hostsというファイルに書き込みを試みているために発生します。書き込み中に十分なアクセス許可がないことがわかっている場合、書き込み中にそのファイルに書き込みは行われず、失敗します。これは私の問題の理解であり、より知識のある人々はこれにより多くの光を投げかけることができます。それが役に立てば幸い

7
Saras Arya

このコマンドは私のために働いた、

Sudo chown -v $USER ~/.ssh/known_hosts

@kenorbが述べたように。

現在のユーザーの権限が壊れているため、エラーが発生していました。

7
Ganesh prasad

単にアクセス権が壊れたために私に起こりました。私のユーザーには、そのファイルへの読み取りまたは書き込みアクセス権がありません。権限を修正すると問題が修正されました

2
Andrea Gherardi

私には、これを行うだけです:

rm -rf ~/.ssh/known_hosts

その後:

ターゲットホストにsshするだけで問題ありません。これは、「known_hosts」ファイルの許可とデフォルトの所有者がわからない場合のみです。

1
Raigor

「ssh」キーを再度生成し、gitアカウントに追加しました。これは私のために働いた。

「ssh-key」を生成する次のコマンドを見つけてください。

$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

->これは、提供された電子メールをラベルとして使用して、新しいsshキーを作成します。

Generating public/private rsa key pair.

->「キーを保存するファイルを入力してください」というプロンプトが表示されたら、Enterキーを押します。これはデフォルトのファイルの場所を受け入れます。

Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]

->プロンプトで、安全なパスフレーズを入力します。詳細については、 「SSHキーパスフレーズの操作」 を参照してください。

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

->キーが生成され、キーをコピーします。

$ Sudo cat /root/.ssh/id_rsa-pub

これがうまくいくことを願っています!

1
SH'

興味のある人なら誰でも、これはUbuntuで私のために働いた:

  1. 。sshディレクトリに移動します。

    $ cd ~/.ssh
    
  2. known_hostsファイルを削除します。

    $ rm known_hosts
    
  3. Gitの変更を再度プッシュします。

0
Yves

このコマンドは私のために働いた、

Sudo chmod +x ~/.ssh/known_hosts 
0
Nishu KC

ファイルの権限を確認します(適切な場合は親ディレクトリを確認します)

私は修正しなければならなかった

/home/sravindr/.ssh許可は私のために働いた

0
Sabarish