質問: PuTTYで仮想マシンにSSH接続していて、そこからVPSにSSH接続しようとしていますが、上手くいかないので教えていただけないでしょうか? 現在、仮想マシンにSSH接続しています。そこからVPSにSSH接続しようと以下のコードを実行しました。 [vagrant@localhost chibi]$ ssh -p 60XXX panda@XXXX-XXXX.com すると ``` Permission denied (publickey). ``` となります。 なぜこのような確認をしたかというとcapistrano3でデプロイしようとして発生したエラーを解決したくて確認をしました。 鍵認証についてはVPSの設定時に完了済みでPuTTYでもRLoginでも接続出来てはいます。 個々にSSH接続はできているのですが、デプロイ(capistrano3)でのエラーの解決方法を調べていたら、仮想マシンからSSH接続ができるか 確認してみる。とあったので実行してみたところ接続出来なかったのです。 ちなみにデプロイ時のエラーは以下になります。 ``` [vagrant@localhost chibi]$ bundle exec cap production deploy:check DEBUG [f31fceaa] Running [ -d /usr/local/rbenv/versions/2.3.1-p112 ] as panda@XXXX-XXXX.com DEBUG [f31fceaa] Command: [ -d /usr/local/rbenv/versions/2.3.1-p112 ] (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as kinoko@www.wonder-gate.com: Authentication failed for user pande@XXXX-XXXX.com Net::SSH::AuthenticationFailed: Authentication failed for user pande@XXXX-XXXX.com Tasks: TOP => rbenv:validate (See full trace by running task with --trace) ``` 良くわからないのですが鍵認証が上手くいかなくてエラーがでているのかなと思います。 勝手に自分で考えたのですが ホストマシン(Windous10)に秘密鍵を設置しています。(id_rsa) VPSに公開鍵の設定しています。(.ssh/authorized_keys) もしかして仮想マシンに秘密鍵をコピーしなければいけないのでしょうか? 仮想マシンに秘密鍵が無いので仮想マシンからVPSに接続しようとするとエラーになってしまうのではと無知なりに思ったのです。 パーミッションはVPS側でのみ設定しています。 ``` $ chmod 700 .ssh S chmod 600 authorized_keys ``` capistrano3でデプロイする場合、は仮想マシンにも鍵の設定をするべきなのでしょうか? 何もわからない初心者で質問の内容がわかりづらいと思いますが宜しくお願いいたします。
回答: > > 仮想マシンに秘密鍵が無いので仮想マシンからVPSに接続しようとするとエラーになってしまうのではと無知なりに思ったのです。 > > > そりゃそうです。 OSからみると、自分がハードウェアの上で直接動いているのか、仮想マシン上なのかはあまり関係無いです。 > > もしかして仮想マシンに秘密鍵をコピーしなければいけないのでしょうか? > > > ちゃんとするには、仮想マシン上のOSで鍵ペアを生成して、公開鍵をVPS上のOSにコピーします。 手を抜くなら、ホストOSでの秘密鍵を、仮想マシン上のOSにコピーしても良いです。 また、ネットワーク的に、仮想マシンからVPSのsshのポートへの通信ができるようになっている必要がありますが、`AuthenticationFailed`なので通信自体はできているようですね。