質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Q&A

解決済

4回答

3898閲覧

Macで行っている公開鍵認証をWindowsでも行う方法

avantgarden

総合スコア121

公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

0グッド

0クリップ

投稿2017/01/04 02:35

編集2017/01/05 14:00

VPSへのssh接続を公開鍵認証で行っており、ローカル側はMac、サーバ側はCentOSで設定を行いました。

別のWindowsマシンからも接続したいので、Macにある秘密鍵をWindowsにコピーしたのですが、それだけだとうまくいきません。

実際に行ったのは、WindowsのTeraTermで
「設定→SSH認証」でユーザーを入力→秘密鍵のパスを入力→「新しい接続」でホスト名を入力
を行いましたが、接続されません。

恐らく全然方法が違うような気がするのですが、秘密鍵を移行させるだけではダメなのでしょうか。

よろしくお願いします。

<追記>

秘密鍵のファイル名はid_rsa
公開鍵は、作成時id_rsa.pub、サーバ側でauthorized_keysにリネーム
です。

sshdのログは以下です。

※成功時のログが間違えてましたので、修正しました。

【失敗時(PC)】
ログは残りません。
※修正しました。

【成功時(Mac)】
Jan 5 20:18:03 ik1-307-13989 sshd[1862]: Accepted publickey for <ユーザー名> from <IPアドレス> port 63133 ssh2
Jan 5 20:18:03 ik1-307-13989 sshd[1862]: pam_unix(sshd:session): session opened
for user <ユーザー名> by (uid=0)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikedas

2017/01/04 12:32 編集

秘密鍵と公開鍵のファイル名 (ファイルの内容はいらないです) や、接続を試みたときのサーバのsshdのログ (具体的なホスト名やユーザ名は伏字にしていただいていいです) を質問に追記していただけますか。
ikedas

2017/01/05 07:47

あと念のため。サーバ側のファイルは「ホームディレクトリ/.ssh/authorized_keys」(「t」の後に「h」がある、最後に「s」がある) ですが、ファイル名に間違いはないでしょうか。
avantgarden

2017/01/05 08:23

すみません。「h」の抜けは誤植です。最後の「s」は付いてて正解ですよね。
guest

回答4

0

ベストアンサー

ソフトウェアの開発業務では、「ネットワークがつながらない」というトラブルは日常茶飯事です。ネットワークの基本的な仕組みを理解してトラブル解決をおこなう技を身につけられる方が良いと思います。

まず、ぐぐってみるとTeraTermでSSH接続が出来ない!トラブルシューティングやってみましたみたいなのが見つかって、今回の場合、「接続先ポート番号が間違っている場合」が該当しそうですが、いかがでしょうか?

これで解決しなければ、ソフトウェアの問題かどうかを切り分けるために telnet や power shell 等の原始的な方法で接続してみます。Mac であればデフォルトtelnet が入っているので、 telnet を使いますが、 Windows であれば最近は Power shell を使うのが良いようです。

参考:telnetコマンドのないWindowsでのTCPポート確認

これで、つながれば、 teraterm の問題なので、もう一度設定を見直すことになりますが、つながらない場合は、以下のような可能性があります。

  • ネットワークの途中でパケットがドロップされている(=捨てられている)→ Wireshark で、パケットが捨てられていることを確認することになります。
  • DNSで名前解決ができていない→この場合はIPアドレスで接続先を指定するとつながります
  • ルーティングが通っていない→ route print とかで対象サーバへのルーティングが正しいかどうかを確認する

ちなみに、エラーになるまでに時間がかかるかどうかで、ドロップされているのか、 ICMP で拒否通知が来ているのかを切り分けることができます。前者の場合はエラーになるのに時間がかかりますが、後者の場合はすぐにエラーが出ます。後者の場合であれば、 Wireshark で ICMP をキャプチャすることで誰が拒否しているかわかるのですが、最近のファイアウォールは前者の設定の場合が多く、結局ネットワーク管理者に訴えるしか無いということになるかと思います。

参考:ネットワークのトラブル解析などに利用できるネットワークアナライザー「Wireshark」の使い方

全くつながらない場合は、ネットワーク機器の問題の場合が多いのですが、他のマシンからはつながるという状態であれば、両方のネットワークキャプチャ(Wireshark で採取)を比較することでトラブルシューティングできる可能性が高いです。

投稿2017/01/05 23:56

編集2017/01/06 00:10
mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

avantgarden

2017/01/06 02:07

解決しました。 ほんとに初歩的なことで、sshのポートをデフォルトから変更したことを忘れており、teratermで接続時にポート番号を22から変えていなかったことが原因です。 普段の業務でポート番号を変えることがないので、うっかりでした。 お騒がせしました。
guest

0

PCでのログイン失敗時にサーバ側にログが残ることから、ネットワーク的な問題とは違うんじゃないでしょうかね。
むしろ、rootでログインしようとして蹴られているように見えます。

Windows側もTeratermではなく、Macと同じようにSSHコマンドを使うのではだめですか。
GitかなんかインストールすればSSHコマンドも入ってきます。

投稿2017/01/05 13:00

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

port の問題じゃないですか?

投稿2017/01/05 11:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

秘密鍵をそれを生成したPCの外に持ち出すのは(バックアップ目的を除き)原則としては無いと思います。秘密の物なので。とはいえ、Teratermのサポートする形式の秘密鍵なら、お書きの方法で認証されると思いますので、Teratermと形式が合わないでしょう。

ごく普通の方法としては、Teratermで鍵生成して、公開鍵をサーバーに持ち込みます。

投稿2017/01/04 08:14

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

avantgarden

2017/01/04 08:48

サーバに公開鍵を複数持たせるということでしょうか?
otn

2017/01/04 09:19

そうですね。それが普通です。
avantgarden

2017/01/04 09:32

ありがとうございます。やってみます。
avantgarden

2017/01/04 10:50

すみません。うまく行かずもう少し助けてください。 teratermで鍵を生成し、できた公開鍵の内容を、サーバ側のauthorized_keyに追記しました。 ところがteratermで接続を試みると「ホストに接続できません」と出てしまいます。(入力画面にすらいかない) 鍵云々の問題ではない気がするのですが、原因分かりますでしょうか…
otn

2017/01/04 12:29

・ネットワークがつながっていない ・Windows側のFirewallがじゃまをしている ・サーバー側の問題(同じタイミングでMacから接続できるなら該当せず) ・家庭内ルーターの問題(同じタイミングでMacから接続できるなら該当せず) 等が、思い浮かばないようであれば、VPSを使うのは早いと思います。
avantgarden

2017/01/05 06:36

環境は社内環境で、FirewallはOFFになっています。 社内のルータとかで弾かれているのかと思いましたが、Macからは接続できます。 なので、ご指摘いただいた内容はいずれも該当しないです。
otn

2017/01/05 06:41

失礼しました。質問の感じから、個人の趣味の範囲の作業かと思っていました。 会社の業務ということなら、ネットワーク担当者に調査を依頼してください。
avantgarden

2017/01/05 06:54

いえ、個人の趣味なのはその通りです。ただ、家での時間がとれず、会社でもちょこちょこやりたいというのが実情です。幸い、それが許される環境なので。Macというのも、家で使っているMacBookです。設定も家でやったので、社内LAN環境でつながればMacであるからという理由はないような気もするのですが…。有線か無線かの違いはありますが(MacBook:無線、PC:有線)、グローバルIPは一つなので。
otn

2017/01/05 13:29

いずれにせよ、認証画面すら出ないというのは、ネットワーク的な問題であるのは明かですので、会社のネットワーク担当者に相談してください。会社のネットワーク環境が不明な状態では他人はアドバイスできません。 あと、質問文の【失敗時(PC)】 として書かれているログは、sshのログインとは無関係です。コンソールから sudo vi したというログです。見たら分かると思うのですが。。。
avantgarden

2017/01/05 14:03 編集

失敗のときはログは残ってませんでした。(すみません) 業務で他の色んなサーバにバンバン繋いでるので、こちらのLAN側が原因とは考えにくいと思うのですが、明日確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問