Curl は Known_hosts ファイルを読み込めません。

Curl は Known_hosts ファイルを読み込めません。

curl別のCentos 6サーバーをクライアントとして使用し、プロトコルを使用してCentos 6サーバーからファイルをダウンロードしようとすると、次scpのエラー出力が表示されます。

$ curl -v -O scp://cz/path/to/file
* About to connect() to cz port 22 (#0)
*   Trying 1.2.3.4... connected
* Connected to cz (1.2.3.4) port 22 (#0)
* Failed to read known hosts from /home/cpn/.ssh/known_hosts
* SSH host check: 0, key: AAAAB3NzaC1yc2EAAAABIwAAAQEAyeeDgYFsHi3Ks3PxCXt69IHBr7yNII720sXOm9WKIdGnwPf7QHbLsMf41mctcGRSJ2yO2EXpNEbZQhdUqs3oImdTn2OHF/K8STK1GXMVseusgmPuQWBt36AVPon7h9lSCjtxt+1UpFJoireXvhUDlgg9i1C9QbE04GAmA7vMOmtcVt3/3F6X/hKhOZvHj1gu5+RzCO8fXo2R8XeRoN0GcU2jVOhug0G+hXAiHymh5JzVm4YlCzsNIv3mDOF2lZRLdkor5FDKjBY8/o/5O8U0lWm4ie2S7qDppqCJP2SnNTWlaM3k5HDmdyEKKZ0lV+qG33q3ADZxjBeIKQtWLZfC3w==
* SSH authentication methods available: publickey,gssapi-keyex,gssapi-with-mic,password
* Using ssh public key file /home/cpn/.ssh/id_dsa.pub
* Using ssh private key file /home/cpn/.ssh/id_dsa
* SSH public key authentication failed: Username/PublicKey combination invalid
* Authentication failure
* Closing connection #0

scp質問なしでファイルをダウンロードできます。

$ scp cz:/path/to/file .

ssh何の質問もせずにサーバーに再ログインできます

$ ssh cz

ssh-rsaキーはすべてサーバーファイルに存在します。ssh-dssauthorized_keys

あなたは何curlについて文句を言っていますか?私の唯一の推測は、顧客ファイルのキーがcurl必須であるということです。では、どのように生成しますか?それとも、そのファイルでキーを見つける方法は?dsaknown_hostscurlrsa

修正する

クライアント側から:

$ ls -l /home/cpn/.ssh/known_hosts
-rw-r--r--. 1 cpn cpn 1970 Nov 12 16:12 /home/cpn/.ssh/known_hosts

答え1

少なくとも何が起こっているのかを説明できます。.出力の背後にある権限は、ls -lファイルにアクセスするプログラムに基づいてファイル権限をオーバーライドする SELinux ポリシーがあることを示します。ファイルを表示するために使用される戦略ですls -Z ~/.ssh/known_hosts

おそらく、/usr/bin/sshその同伴プログラム(ssh-keygenscpなど)がファイルにアクセスできる唯一のプログラムです。私はこの方針に懐疑的です。~/.ssh/known_hosts時には手動編集が役に立ちます。しかし、なぜカールが友達にファイルを読むことを許可せず、ファイルを読みたいのかはわかりませんssh

あなたはそれを使用することができますchconファイルのポリシーを編集するコマンドrestoreconデフォルトポリシーを復元します。よりCentOS WikiSELinuxに関する追加情報。

答え2

Googleでこのページを探している人のために:

known_hosts以前のバージョンのcURLは、認識できないキータイプを持つファイルで動作が停止しているように見え、十分に古いcURLバージョンはssh-rsa

たとえば、私のcURLはバージョン7.29.0(6年前であり、作成時にCentOS 7で利用可能な最新バージョン)であり、最初のキーの後にキーの読み取りを停止します。これはecdsa-sha2-nistp256私のファイルの最大の部分キーです。 。known_hosts

答え3

ありがとうございます。 Known_hostsファイルを消去すると、このエラーは消えました。これは長期的な解決策ではありませんが、ワンタイムソリューションとして使用できます。

関連情報