仮想マシンがあるコンピューターにある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
。