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

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

ただいまの
回答率

90.48%

  • UNIX

    389questions

    UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

プログラミング初心者です。ssh接続?がさっぱりわかりません。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,553

HidenoriYamano

score 54

研究室で、データベースを構築しようとしているのですが、元データをあるホスト?から秘密鍵を使ってとってきたいのですが、どのようにやればいいのか全くわかりません。ちなみに、あるサイトを見ながら一つずつ打ち込んでいったのですがうまくわかりません。秘密鍵をどのように使うのかもわかりません。どなたか素人でもわかるようにわかりやすく解説してくれたら嬉しいです。
ちなみに、下のURLを参考にしました。
http://webkaru.net/linux/mac-ssh-login-public-key/

追記です。
接続サーバーのOSはubuntuで、自分のOSはmacです。
また、研究室で使用しているPCのOSはmacで、WinScpを使用しています。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

WindowsサーバにSSH接続したいのであれば前提として
そのWindows側にSSHサーバが立っている必要がありますが問題ないでしょうか?
通常WindowsをインストールしただけではSSHサーバはインストールされていません。

SSHサーバが立っていて(Listenしていて)、
その上でSSHサーバに公開鍵を認識させることで初めて秘密鍵を使ってSSH接続が可能になります。
(そのあたりURLに記載されているページではかなり説明不足ですが)


ここから先は推察
相手のosは、おそらくWindowsだと思います。今、自分の研究室では、winscpを使ってデータを取得してるからです。
WinSCPを使っているからと言って接続先がWindowsだとは限らないです。
WinSCP はあくまでWindows用のクライアントであり、
かつSSH以外にもSFTPやらFTPやらWevDAV等サポートしています。

やりたいこととしては以下のような形だと思うのですがどうでしょうか?
(勘違いでしたらすみません)
推察この場合ポイントとなるのは下記です。
  • WinSCPで接続しているプロトコルはSSH(SCP)であるか
  • 接続先サーバに公開鍵を設置することは可能か


投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/12 17:05

    詳しい解説ありがとうございます! 推察は的確です!!
    接続先のOSは、ubuntuでした。
    WinScpのプロトコルを確認したところ、SCPになっていました。
    公開鍵の設置に関しては、サーバー先に確認中ですのでまだわかりません。
    ***.ppkという秘密鍵が手元にあるのですが、それだけでは不十分なのでしょうか。

    キャンセル

  • 2015/06/12 17:47

    手元にある秘密鍵はWinSCPで使っていたものでしょうか?
    その前提かつWinSCPでログインできているという前提で話を進めます。
    (WinSCPでログインできているなら公開鍵は既に設置されているはず)

    1. Putty形式(拡張子ppk)からOpenSSH形式への変換をしてください。
    (鍵の形式としてPutty形式、OpenSSH形式、SECSH形式等があり、WinSCPはPutty形式、MacのSSHクライアントはサイトの通りであればOpenSSH形式です。)

    変換の仕方はこのあたりを見てください。
    http://www.tkd55.net/blog/?p=873

    2. 変換した秘密鍵を自分の秘密鍵に設置してください。
    > ちなみに、下のURLを参考にしました。
    > http://webkaru.net/linux/mac-ssh-login-public-key/
    上記のサイトでは/home/karuma/.ssh/id_rsaに当たります

    3. WinSCPと同じ接続情報でもってSSHコマンドを実行してください。
    $ ssh WinSCPでログインしているユーザー名@ubuntuのIPアドレス

    WinSCPと同じユーザーでもってログインを試みているので運用的に問題ありそうな気もしますが、取り急ぎ上記でログインはできると思います。

    キャンセル

  • 2015/06/12 22:11

    上記を参考にして接続を試みましたが、
    scp ~/.ssh/id_rsa.pub karuma@aaa.bbb.ccc.ddd:~/.ssh/authorized_keys
    と打つと
    Permission denied (publickey).
    lost connection
    と表示されてしまいました。なぜでしょうか><
    それと、
    Enter passphrase (empty for no passphrase): ← パスフレーズを入力します
    とありますが、パスフレーズとはなんでしょうか。winscpでのログイン時に必要なパスワードを打ち込めばいいのでしょうか。

    キャンセル

  • 2015/06/13 10:15

    > scp ~/.ssh/id_rsa.pub karuma@aaa.bbb.ccc.ddd:~/.ssh/authorized_keys
    上記のコマンドを噛み砕いて言うと aaa.bbb.ccc.ddd というホストの karuma というユーザーに対して、ssh で公開鍵を送信、設置するというようなコマンドです。

    下記の前提なら公開鍵は既に設置されているはずなので上記は不要なのですが、そうではないということでしょうか?
    > 手元にある秘密鍵はWinSCPで使っていたものでしょうか?
    > その前提かつWinSCPでログインできているという前提で話を進めます。
    > (WinSCPでログインできているなら公開鍵は既に設置されているはず)

    > Enter passphrase (empty for no passphrase): ← パスフレーズを入力します
    上記は何をしているときに出たのですか?
    (秘密鍵の変換ですかね?)

    キャンセル

  • 2015/06/13 18:12

    > 手元にある秘密鍵はWinSCPで使っていたものでしょうか?
    そうです。これを、opensshに変換しました。
    >上記は何をしているときに出たのですか?
    $ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/karuma/.ssh/id_rsa): ← Enterキーを押します
    Created directory '/home/karuma/.ssh'. ← ~/.ssh がない場合、ディレクトリを作成します
    Enter passphrase (empty for no passphrase): ← パスフレーズを入力します
    Enter same passphrase again: ← もう一度パスフレーズを入力します
    ここでひょじされます。

    また、
    >$ scp ~/.ssh/id_rsa.pub karuma@aaa.bbb.ccc.ddd:~/.ssh/authorized_keys
    をじっこうすると、
    Permission denied (publickey).
    lost connection
    と表示されてしまいます。なぜでしょうか。

    キャンセル

  • 2015/06/13 19:17

    > $ ssh-keygen -t rsa
    これは公開鍵と秘密鍵のペアを生成するコマンドです。
    .ssh/id_rsa がOpenSSH形式の秘密鍵
    .ssh/id_rsa.pub が公開鍵になります。

    が、今既にWinSCPで使っている秘密鍵を持っていて、
    既に公開鍵もubuntuに設置されていますよね?
    ですのでこのコマンドは不要ではないでしょうか。


    > $ scp ~/.ssh/id_rsa.pub karuma@aaa.bbb.ccc.ddd:~/.ssh/authorized_keys
    これは公開鍵をログインしたいサーバに設置するコマンドです。
    同様にこちらも不要ですよね。


    > Enter passphrase (empty for no passphrase): ← パスフレーズを入力します
    補足すると上記は秘密鍵に設定するパスワードです。
    入力せずにそのままEnterを押すとパスワードなしにできます。


    今やらないといけないことは前々回のコメントで書いた通り、下記の3つです。
     1. Putty形式(拡張子ppk)からOpenSSH形式への変換
     2. 変換した秘密鍵を自分の秘密鍵に設置
     3. WinSCPと同じ接続情報でもってSSHコマンドを実行

    とりあえず参考サイト等でコマンドを実行するときは
    そのコマンドで何をしているのか意識しながらやらないと
    なかなか理解に結びつかないのではないかと思います。

    キャンセル

  • 2015/06/14 10:08

    色々試行錯誤してみた結果、
    $ ssh -i ~/.ppk user@IPaddress
    で接続できました。opensshに変換せずにできたのですが、なぜでしょう。

    キャンセル

  • 2015/06/14 10:24

    ppk という拡張子だけど中身は OpenSSH 形式だったとかですかね?
    元々そういう中身だったとか OpenSSH 形式に変換するときに元の ppk ファイルを上書きしてしまったとか・・・

    とりあえず秘密鍵の中身を見て、1行目に書いてる内容で大体判別できます。

    putty … PuTTY-User-Key-File~
    OpenSSH … -----BEGIN RSA PRIVATE KEY-----
    SECSH … ---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----

    キャンセル

  • 2015/06/14 14:51

    1行目は
    -----BEGIN RSA PRIVATE KEY-----
    となっていました。

    キャンセル

  • 2015/06/14 15:19

    ということは拡張子だけPutty形式で、中身がOpenSSHの秘密鍵だったということですね。

    接続できたとのことなのでそのままでもいいと思いますが、
    私だったら秘密鍵を id_rsa というファイル名にして ~/.ssh/ 以下に配置します。
    そうすると -i で秘密鍵を指定しなくても勝手に使ってくれますので。
    (設定にもよりますがデフォルトはそうなっています)

    とりあえず解決したと思いますのでこんなところですかね。

    キャンセル

  • 2015/06/15 13:46

    そうだったんですね。ありがとうございました。ファイルの設置先の移動もやってみたいと思います。また機会がありましたらよろしくお願いします。

    キャンセル

0

ssh接続とは簡単に言うと接続先のデバイスを遠隔操作できるのです!
お尋ねしたいのですが、sshを使用して接続する相手のOSは何を使用しているのでしょうか??

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/12 13:41

    相手のosは、おそらくWindowsだと思います。今、自分の研究室では、winscpを使ってデータを取得してるからです。
    ちなみに今回、自分はmac で接続しようとしています!

    キャンセル

  • 2015/06/12 14:00

    今回やろうとしているのは、秘密鍵を使用して接続して接続先からデータを取得したいという事であってますか??

    キャンセル

  • 2015/06/12 16:37

    はい、そうです! OSを確認したところ、ubuntuでした。すいません。

    キャンセル

関連した質問

同じタグがついた質問を見る

  • UNIX

    389questions

    UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。