このsshエラーはどういう意味ですか?


9

これが私の最後の手段であります。私は何時間もここで問題を理解しようとしました。

取引は次のとおりです。秘密鍵をマシン#1からマシン#2にコピーしました。マシン#1はsshを介して私の公開鍵でサーバーに問題なく接続できますが、マシン#2はサーバーに接続しようとすると次の出力を提供します。

$ ssh -vvv -i /home/kevin/.ssh/kev_rsa user@192.168.1.244 -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace

...


Permission denied (publickey).

明らかに私が省略したより多くのデバッグ出力があり、私は要求に応じて提供できます。しかし、私は秘密鍵ファイルを好きではないと確信しています。

また、それをマシン#1からマシン#2にコピーする方法と関係があるのではないかと疑っていました。テキストを秘密キーからフラッシュドライブにコピー/貼り付けました。これは問題になる可能性がありますが、この方法を別の有効な秘密鍵ファイルに複製し、元のファイルとコピー/貼り付けたファイルを比較すると、それらは同じです。

私はこれに苦労してきました。なぜ私のキーが気に入らないのかについてもう少し情報を得ることができれば、私はそれを修正できると確信しています。誰かこれについて何か考えがありますか?ファイルが実際にはRSAキーであることをsshに伝えるメタデータがどこかにありますか?


そして/var/log/auth.log、サーバー上で何を言うのですか?
ウォンブル

明確にするために、マシン1からの公開鍵はサーバーに接続します。マシン2で実行されているマシン1の秘密鍵はサーバーに接続しませんか?
Dru

両方のマシンに同じ鍵ペアがあり、公開鍵はサーバーにあります。サーバーへの接続に問題のないクライアントマシン1から、ここでこの認証の問題が発生しているホームコンピューター(マシン2)にキーをコピーして貼り付けました。
ケビン2011

@womble私はこれは私が...ああ、皮肉でsshの右側にできるようになる考え出し得ることができる場合は、残念ながら、私は...、サーバにアクセスすることはできません。)
ケビン

2つのクライアントマシンのオペレーティングシステムは何ですか?秘密鍵の転送により、開始行の前に行末または導入されたテキスト(空白行またはスペースの可能性があります)が変更されていませんか?
Stobor 2011

回答:


7

私の経験では、2つの最も一般的なキーベースの認証エラーは

  1. $HOME/.sshディレクトリに対する不適切な広範な権限
  2. 公開鍵をリモートシステムにコピーする際のエラー

ファイルの権限

OpenSSHは、あなたを自分から守るために多くのことを行います。これが発生する最もユーザーに影響を与える方法は、ローカルのsshフォルダーにアクセスできるユーザーに厳しい制限を適用することです。あなたは本当にあなただけ、そしてあなただけがディレクトリにアクセスすることを望んでいます。まあ、uid = 0の人なら誰でも、それを回避する方法はありません。だからあなたがする必要があるのはあなたの許可を変更することだけです:chmod -R go-rwx ~/.sshこれは所有者を除くすべてのユーザー、つまりあなたから.sshディレクトリの下のファイルへの読み取り、書き込み、実行の権利を削除します

承認済みキーの問題

公開鍵を含むファイル$HOME/.ssh/authorized_keysは、通常、SSHが秘密鍵を受け入れる方法を理解するための非常に具体的な形式に適合している必要があります。各キーは、少なくとも2つのフィールドで構成される必要があります

  1. 使用される鍵のタイプ(RSA、DSA、RSA1など)
  2. キー

各キーは、そのすべてのオプションとコンポーネントパーツとともに、このファイルの1行に1つずつリストする必要があります。キーは非常に長くなる傾向があるため、端末上で折り返されて2行として表示されることがよくあります。これにより、コピー/貼り付けを試行するときに混乱が生じることがあります。これは、キーが画面上で折り返される場所に1つ以上の改行が挿入される場合があるためです。この問題修正することは、シェルの初心者にとって少しトリッキーになることがあります。

実行してみてください
wc -l ~/.ssh/authorized_keys
これにより、ファイルの行数が出力されます。その数を、ファイル内にあると予想されるキーの数と比較します。この1つのキーのみを受け入れる場合は、公開キーファイルのコピーを作成することもできます。これは、承認されたキーファイルと同じ形式であるためです。のようなもの、
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
または同じシステムに公開鍵がある場合は、
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys

さらに、リモートホストのログファイルを調べて、そこにエラーが報告されていないかどうかを確認します。ファイルには、最も可能性のいずれかになります/var/log/secure.log/var/log/auth


1
こんにちは、ここであなたの努力をありがとう。ありがたいです。これは、アクセス許可の問題ではありません。権限が正しいことを確認しました。(私は警告としてそれを追加する必要がありました)。また、現在は元のキーにアクセスできませんが、使用しているキーのコピーに使用したプロセスを複製しました。md5sumを実行して、ファイルが同一であることを確認しました。理にかなっていますか?
ケビン

1
また、サーバーにアクセスできません。ここでの全体の問題の種類...;)
ケビン

@Scott:公開鍵であるmake a copy of the private key file必要があります(例に示されている
とおり

0

ただし、サーバーに接続するには、マシン2の新しいキーペアを生成する必要があります。多くの場合、公開鍵には、それらを生成したユーザーとマシン名がリストされます。これは、サーバー上のauthorized_keysファイルで明らかになるはずです。


2
それらは無視されているという印象を受けました。それらは、authorized_keysを表示するときにそれらを識別するのに役立つコメントにすぎません。とにかく、私はキーをコピー/貼り付けただけです。したがって、それらは同一です。それがあなたのホスト名をチェックすることを真剣に疑います。もしそうなら、私はそれを簡単に変えることができました。
なんてこった

0

指定したデバッグメッセージは、秘密鍵ファイルが実際には公開鍵/許可されたホストファイルであると想定して読み取られることを意味します。これは致命的なエラーではない可能性があります(接続が機能している場合でも、このようなメッセージが表示されます)。「申し出」や「お送りしました」について何かおっしゃっていますか?


-3

2つのサーバー間でssh構成ファイルを比較してみてください。

すなわち。cat / etc / sshd_configのようなもの


私はもっ​​と明確だったはずです。2つのクライアントと1つのサーバーがあります。サーバーや他のクライアントマシンにアクセスできません。このいまいましいキーが認証されるとすぐにサーバーにアクセスできるようになります;)
kevin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.