仮想マシンを持つコンピューターにあるmysqlサーバーへのsshトンネルをセットアップしたい。また、マシンが再起動された場合、トンネルは機能する必要があります。
AがLinuxソフトウェアを搭載したコンピュータだとしましょう。 B-コンピューターAの仮想マシン.
MySQLはBです。
C-コンピュータAの仮想マシンで、BのMySQLに接続したい。
公開鍵をリモートサーバーにコピーしようとしています。コンピューター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のキーを使用していることを確認します。これは、コピーしようとしている公開キーとは異なります。もちろん、秘密キーは異なりますが、別の公開キーをコピーします秘密鍵。そこでパスフレーズを使ってみました。また拒否されました。
パスフレーズが拒否される理由をデバッグするにはどうすればよいですか?
更新
コメントに基づいて、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です。
更新
コンピューターでパスワード認証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ファイルにあるものと同じであるのですか?私はすべての文字をチェックしませんでしたが、キーが非常に似ているため、パスフレーズが異なる場合でも、最初と最後が同じになるとは考えられません。
ようやく問題が見つかりました。
実際、公開鍵をコピーする必要はありませんでした。 同じ公開鍵が両方の秘密鍵用です-パスフレーズありとパスフレーズなし。私はパスフレーズなしの秘密鍵を持っていると思っていましたが、実際には持っていませんでした。パスフレーズのない.ppkしかありませんでした。それはコミュニケーションの失敗でした。同僚がパスフレーズなしで秘密鍵を作成したので、パスフレーズなしでsshを使用してログインできるようになりました。パスフレーズなしで使うのは悪いことだと私は読んだが、同僚は大丈夫だと言っている。再起動時にシェルスクリプトを実行する必要があるため、パスフレーズなしで必要でした-コンピューターの再起動時にautosshを起動したいのですが。
つまり、今回は一種の解決策です-パスフレーズなしでログインしたい場合-秘密鍵にパスフレーズがないかどうかを確認してください。
キーをコピーするには実際にログインする必要があります。リモートマシンにアクセスすることはできません(無効なキーとパスワードによる認証は無効になっています)。
/ 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]
もう一度ログインしてみてください。パスワードは必要ありません。
次に、パスワード認証を無効にします。
Permission denied (publickey)
は、「認証方法として公開鍵のみを受け入れるので、もういかない」と言っているリモートSSHサーバーです。
それが主な課題です。リモートシステムにアクセスすることです。それができたら、キーをアップロードできます。
ssh-copy-id
を使用する-たとえば、古いキーを置き換える場合は、別のキーを指定できます。~/.ssh/authorized_keys
を編集して、キーを手動で追加します。