ssh-copy-id-許可の拒否(公開鍵)[終了]


30

仮想マシンがあるコンピューターにあるmysqlサーバーへのsshトンネルをセットアップしたい。また、マシンが再起動された場合、トンネルが機能する必要があります。

AがLinuxソフトウェアを搭載したコンピューターだとしましょう。B-コンピューターAの仮想マシン

MySQLはBにあります。

C-BのMySQLに接続するコンピューターAの仮想マシン

今この記事で:http : //www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

公開鍵をリモートサーバーにコピーしようとしました。コンピューターAにコピーする必要があると思います。

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

ファイルid_rsa.pub.bakのパスフレーズを入力してみました。否定しました。

次に、/ home / [user] /。ssh / id_rsaのキーを使用して、コピーしようとしている公開キーとは異なることがわかります。もちろん、秘密キーは異なりますが、別の公開キーをコピーするということです。秘密鍵。そこで、パスフレーズを使ってみました。また拒否されました。

パスフレーズが拒否される理由をデバッグするにはどうすればよいですか?

更新

コメントに基づいて、すべてが1行になったid_rsa.pubという新しいパブリックファイルを作成しました

実行してもエラーが発生します。

ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

更新

Aコンピューターの.sshフォルダーとauthorized_keysファイルのアクセス許可を確認しました-コメントが良いと言うように、700と600です。

更新

Aコンピューターでパスワード認証をyesに設定し、サービスを再起動しようとしました。答えによると再起動は機能しませんでした、認識されないsshdを書いたので、私は使用して再起動しました:

sudo /etc/init.d/ssh restart

次に、Cマシンでもう一度試して、Aマシンにコピーします。

ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v

それでも同じ:

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

キーをauthorized_keysに手動でコピーすると、公開キーが既に存在することがわかります。これは、コピーしたいキーと同じです。私は同僚に尋ねました、彼はそれをコピーしなかったと言いました。ですから、それがどのように存在するのかさえ理解していません。

[OK]を、それがそこにある場合、それは良いでしょうが、そこにとどまることによって、私はパスフレーズを入力せずにSSHで接続することはできません。しかし、パスフレーズの入力に接続することができました。したがって、ここでは明らかに何かが間違っています。そして、私がコピーしようとしているキーは空のパスフレーズです。sshで接続したとき-空ではないパスフレーズを入力しました。

同じ公開鍵は、空のパスフレーズと空でないパスフレーズを受け入れることができません。これは理にかなっています。しかし、パスフレーズが異なる場合、アップロードしようとしている公開鍵がauthorized_keysファイルの公開鍵と同じであるのはなぜですか?私はすべての文字をチェックしませんでしたが、パスフレーズが異なる場合でも、キーが非常に似ているため、開始と終了が同じになる可能性は低いです。


で始まるファイルはどれid_rsaですか?でssh-copy-id終わるファイルを期待しているので、あなたがそれを呼び出す方法でエラーメッセージで失敗することを期待しています.pub。あなたのものが終わると.bak、おそらくを使用しますid_rsa.pub.bak.pub
-nlu

@nlu-id_rsaがあり、これをメモ帳ftpエクスプローラーを使用してファイルをドラッグアンドドロップしてコピーしました。また、nanoで作成し、notepad ++からマウスでコンテンツを貼り付けたid_rsa.bakもありますが、同じテキストを作成しましたが、どういうわけか2列です。また、nanoで作成したid_rsa.pub.bakもあります。実際には3行ありますが、オリジナルはすべて1行になっています。それが重要かどうかわからない。しかし、ご覧のとおり、ファイル名に関するエラーメッセージは表示されませんでした。
ダリウスV

1
します。例はこちらを参照してください:snailbook.com/faq/publickey-userauth.auto.html(「テキストエディターを使用する場合は、このファイルの行を中断しないように注意してください。」)。
-nlu

彼らはビジネス環境のシステムではないと考えているため、質問は閉じられていますが、ビジネス環境の問題を解決していました。
ダライアスV

回答:


25

実際にキーをコピーするにはログインする必要があり、リモートマシンにアクセスできません(無効なキーとパスワード認証が無効になっています):

/ etc / ssh / sshd_configでpasswd認証を再度有効にします。

PasswordAuthentication yes

次に、サービスを再起動します。

service sshd restart

公開鍵をコピーします。

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]

もう一度ログインしてみてください。パスワードは不要です。

次に、パスワード認証を無効にします。


ログインしたいサーバーでPasswordAuthをyesに設定し、パスワードを使用してputtyで接続できるが、ssh-copy-idはまだパスワードを要求せず、Permission denied(publickey)を書き込むとどうなりますか。?
ダリウス.V

ちょっとありがとう!あなたは私の一日を救った!本当にありがとう!!!
尤川豪

@Nabilのおかげで、これはUbuntu 18.04でも機能します。将来の読者への注意:監視により、ssh_configではなく、指示に従って/ etc / ssh / sshd_configを編集します(私がやったように!)。また、明らかにssh-copy-id USER @ HOSTで十分です。
Snidhi Sofpro

12

Permission denied (publickey) 「認証方法として公開鍵のみを受け入れ、終了します」と言っているリモートSSHサーバーです。

それがあなたの主な課題です:リモートシステムに乗ります。それができたら、キーをアップロードできます。

  • 使用ssh-copy-id-たとえば、古いキーを置き換えるプロセスにいる場合、別のキーを指定できます。
  • リモートユーザーを編集して~/.ssh/authorized_keys、キーを手動で追加します。

5

最終的に問題を発見しました。

実際、公開鍵をコピーする必要はありませんでした。同じ公開鍵は、パスフレーズありとパスフレーズなしの両方の秘密鍵用です。 パスフレーズのない秘密鍵があると思っていましたが、実際にはありませんでした。パスフレーズなしの.ppkしかありませんでした。それはコミュニケーション不足だった。そのため、同僚はパスフレーズなしで秘密鍵を作成したので、パスフレーズなしでsshを使用してログインできるようになりました。パスフレーズなしで持っているのは悪いことだと読みましたが、同僚は大丈夫だと言います。再起動時にシェルスクリプトを実行する必要があるため、パスフレーズなしで必要でした-コンピューターの再起動時にautosshを起動したい。

そのため、今回の解決策は、パスフレーズなしでログインしたい場合、秘密鍵が本当にパスフレーズなしであるかどうかを確認することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.