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

Vagarant+Eclipse(Perl)での作業環境構築

現在の案件でPerlの改修があるんですが、windowsだとモジュールの依存関係でうまくコンパイルできなかったりといろいろとトラブルが起こったんで、今はやりの仮想環境でやることに。 まだ完ぺきではない …

no image

大規模Webサービス技術入門 イントロ

一応WEBサービスを日々改修していますが、データが日々ふえ、大規模なサービスの対処法などを勉強する必要があるため、「大規模サービス技術入門」を少しずつ読んでいこうと思います。 ポイント データはディス …

no image

ネットワーク基礎 OSI参照モデルなど

ここ↓でネットワークの基礎についてかいてあるので定期的に勉強しようと思っています。 3分間 NetWorking Contents1 スニーカーネットからリソース共有2 LANとWAN3 OSI参照モ …

no image

scpコマンドを使ったサーバー間のファイルのやり取り

あるサーバーのファイルを別サーバーにコピーするとき、大昔はFTPを使っていましたが、現在FTPサーバー自体を立てることがあまりないため、SSHを使ったSCPコマンドでのファイル点を使いました。 Con …

no image

Linuxコマンドでのテキスト整形 CSV系の処理など

以前、対テキストファイル系のLinuxコマンドの使い方を紹介しましたが、その関連エントリーを。 今回やるのはCSV系の処理ですね。 id name age 1  suzuki 35 2  tanaka …

アーカイブ