skillup

技術ブログ

サーバー・ネットワーク

SSH鍵認証に関して

投稿日:2017年10月25日 更新日:

SSHの鍵認証についてやり方自体は流れ作業でできていましたが、根本的なところが理解していないので復習。

まずは通常の流れを。

1 クライアント(自分のPC)で公開鍵・秘密鍵を作成。 ssh-keygen コマンドを使います。
ssh-keygenコマンドを叩くと ~/.ssh ディレクトリが作成され、このなかに公開鍵(id_rsa.pub)と秘密鍵(id_rsa)が作られます。

2 サーバー側に公開鍵(id_rsa.pub)を配置します。配置といってもメールなどで送るのではなく、scpコマンドで送るのが正しい方法のようです。ちなみに外部のサービス(たとえばGitbuketやGitHub)などだとサーバーに送ることができないため、id_rsa.pubの内容(ただのテキスト)を登録します。

ちなみにGitHubには https://github.com/${USERNAME}.keys でアクセスすると鍵の情報を見ることができます。

3 サーバー側で鍵の登録をauthorized_keysに登録します。
具体的には

というコマンドを使い登録します。

4 これでクライアントとサーバーが通信することができます。

もちろん公開鍵と秘密鍵両方ないとダメです。原理はリンク参照。

追記

ppkという秘密鍵はputtey形式のものになり、Linuxサーバーだけでやりとりするケースでは使われません。WinSCPなどを使うときには必要になります。いつもWinSCP使ってるんで作ってましたが・・・

windowsでのgit導入手順

SSH認証鍵をBitbucketに設定

秘密鍵・公開鍵を作成する(Win)

WinSCP の秘密鍵の設定方法

参考リンク

SSH鍵認証について+CakePHP2でのセッション切れ

いつも↑のようにやることが多かったですが、どっちを接続される側におくか(ホスト側)、接続をお願いする側(一般的にはクライアント側)によって変わってきますね。

正しくは今回の記事のように

自分のPC(クライアント) 秘密鍵

サーバー(リモートホスト側) 公開鍵

なのですが、サーバー側で鍵を作って秘密鍵を各人に配布するケースもあります。

よくあるパターンとしては多人数が接続するパターンで各人から公開鍵を回収するのが大変なケースですね。

秘密鍵と公開鍵は、サーバー側(ssh接続される側)で作ろうがクライアント側(sshコマンドを打って接続しに行く側)で作ろうが、どっちでもいいそうな。

共通鍵暗号と公開鍵暗号の解説とSSHでの認証手順

SSHの仕組み!ぼんやりとした理解だったものをすっきりさせようの会

SSHなるものをよくわからずに使っている人のための手引書

-サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

CentOS7の基本に関して

以前も学習しようとしましたが、CentOSの基礎について。 Contents1 デーモン2 ポートの割り当て3 systemdの役割 デーモン Linux上で動くサービスを提供をするプログラムのこと。 …

no image

ログ抽出コマンド特集 その1 cat+grep+sort

先日、メモリ使用率の調査に関して記事をかいたのですが、今度はそのログの収集や抽出をおこなってみようかと思います。 やりたいこと yyyy/MM/dd-HH:mm:ss  メモリ使用率(少数2桁まで)  …

no image

ネットワークコマンドについて(ping,nslookup,host,digなど)

前回のDNSの時にレコードタイプについて調べましたが、以前からあやふやだったネットワーク系のコメントについても調べてみようかと思います。 参考リンク 名前解決・疎通確認する際の基本的なLinuxコマン …

no image

dockerでの環境構築 〜コンテナ作成し、実作業ができるまで(mac編)

今や環境構築の保存や移行などが比較的自由にできるようにはなってきていると思います。 自分の場合は未だにvagrantのイメージフォルダを移行してやっていますが(汗)。 参考リンク vagrantで仮想 …

no image

herokuでのLet’s Encrypt設定

herokuで運用しているアプリでhttps設定(Let’s Encrypt)をしたいという要望があり、調査、設定をすることに。 当然herokuでなくても大丈夫です。 過去に行ったhtt …

アーカイブ