﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SSH  |  Web Creators Hub</title>
	<atom:link href="https://web-creators-hub.com/category/linux/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>https://web-creators-hub.com</link>
	<description>WEB技術などの情報をわかりやすく配信するメディア</description>
	<lastBuildDate>Wed, 08 Feb 2023 01:56:31 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.8.2</generator>
	<item>
		<title>【図解】公開鍵と秘密鍵を使ったSSH接続の設定を分かりやすく解説</title>
		<link>https://web-creators-hub.com/linux/ssh/</link>
		<pubDate>Sat, 31 Aug 2019 15:24:53 +0000</pubDate>
		<dc:creator><![CDATA[taizo]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">https://web-creators-hub.com/?p=307</guid>
		<description><![CDATA[SSHとは SSHとはサーバをリモートで操作するプロトコルです。ポートはデフォルトで22番を利用します。現場ではリモートでLinuxのサーバ...]]></description>
				<content:encoded><![CDATA[<h2>SSHとは</h2>
<p>SSHとはサーバをリモートで操作するプロトコルです。ポートはデフォルトで22番を利用します。現場ではリモートでLinuxのサーバを操作するために利用されます。SSHの略は「Secure SHell」です。Secureと言う単語あるようにSSHでアクセスすると通信はすべて暗号化され盗聴されません。認証方法はパスワード以外にも公開鍵認証が利用されます。これはデータを暗号化する公開鍵とデータを復号（解読）する秘密鍵を使って通信する暗号化方式です。公開鍵と秘密鍵はペアになっています。</p>
<p>公開鍵認証でアクセスする方法を紹介します。</p>
<h2>前提</h2>
<p>クライアントにはWindows10を利用します。サーバはLinux CentOS6または 7での解説になります。</p>
<p>クライアント：Windows10 (GitBashインストール)<br />
サーバ　　　：Linux CentOS6 or 7</p>
<h2>windowsで秘密鍵と公開鍵を作成</h2>
<h3>1.GitBashをインストール</h3>
<p>Windowsで秘密鍵と公開鍵を作成するには「GitBash」を利用します。これはWindowsでBash(linuxのコマンド)が利用できる地味にすごいツールです。これを以下のURLからダウンロードしインストールします。すでにインストールされている人は飛ばしてください。</p>
<p>https://gitforwindows.org/</p>
<p>インストール画面はすべて「next」でOKです。</p>
<h2>Git Bashを起動し秘密鍵・公開鍵を作成</h2>
<p>プログラムメニューから「Git Bash」を起動します。起動後、以下のコードを入力し秘密鍵・公開鍵を作成します。「.ssh」フォルダはデフォルトの鍵の保存場所になります。</p>
<h3>秘密鍵・公開鍵の作成</h3>
<p><code>ssh-keygen<br />
Generating public/private rsa key pair.<br />
Enter file in which to save the key (/c/Users/[username]/.ssh/id_rsa): &lt;-- 鍵を保存するフォルダ（ Enterキー ）<br />
Created directory '/c/Users/[username]/.ssh'.<br />
Enter passphrase (empty for no passphrase): &lt;-- パスフレーズを入力（ Enterキー ）<br />
Enter same passphrase again: &lt;-- もう一度、パスフレーズを入力（ Enterキー ）<br />
Your identification has been saved in id_rsa.<br />
Your public key has been saved in id_rsa.pub.</code></p>
<p>ssh-keygenのコマンドを入力すると秘密鍵・公開鍵のペアを作成することができます。オプションを何も入力しない場合は、暗号化方式はRSA、鍵の長さは3072で作成されます。鍵の強度は鍵の長さが2048以上、暗号化方式はRSAであれば問題ありません。パスワードを入力するのが面倒な場合パスフレーズをなしにします。その場合パスフレーズを何も入力せずにEnterキーを押します。</p>
<p>保存場所や鍵の名前などなにも指示しない場合、秘密鍵と公開鍵は以下のフォルダに作成されます。<br />
c:\Users&#91;username]&#46;ssh\id_rsa　　 （秘密鍵）・・・ クライアントPCに配置<br />
c:\Users&#91;username]&#46;ssh\id_rsa.pub （公開鍵）・・・ 接続対象サーバに登録</p>
<p><img class="alignnone size-full wp-image-323" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg1.png" alt="" width="541" height="315" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg1.png 541w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg1-300x175.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg1-320x186.png 320w" sizes="(max-width: 541px) 100vw, 541px" /></p>
<p>ちなみに鍵の強度は以下のコマンドで確認することができます。<br />
<code>ssh-keygen -l -f ~/.ssh/id_rsa.pub</code></p>
<p>&nbsp;</p>
<h2>公開鍵をサーバに渡す</h2>
<p>作成した公開鍵をサーバに渡します。渡し方は公開鍵のファイルを開いて中身をコピーし<br />
貼り付けてもいいですが、今回はscpコマンドを使ってサーバに渡します。scpコマンドはリモートにデータをコピーするコマンドです。コピーするコマンドcpにsshのsがついています。これで盗聴されずに安全にサーバにコピーができます。</p>
<p>それでは「Git Bash」でscpコマンドを使って公開鍵をサーバにコピーします。前提としてサーバー側に.sshディレクトリを作成しておきます。その後以下のコマンドを入力します。</p>
<p><code>scp ./id_rsa.pub user@host:~/.ssh/authorized_keys</code></p>
<p>サーバにログインし「.sshフォルダ」と「authorized_keys」のパーミッションを変更します。</p>
<p><code>cd ~<br />
chmod 700 .ssh<br />
cd .ssh<br />
chmod 600 authorized_keys</code></p>
<p><img class="alignnone size-full wp-image-324" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg2.png" alt="" width="541" height="315" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg2.png 541w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg2-300x175.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg2-320x186.png 320w" sizes="(max-width: 541px) 100vw, 541px" /></p>
<p>&nbsp;</p>
<h2>SSHの設定を変更</h2>
<p>公開鍵認証できるようにサーバ側のsshの設定を変更します。</p>
<p><code>vi /etc/ssh/sshd_config</code><br />
以下の行のコメントをはずして有効化する。</p>
<p>#RSAAuthentication yes<br />
#PubkeyAuthentication yes<br />
#AuthorizedKeysFile .ssh/authorized_keys<br />
↓<br />
RSAAuthentication yes<br />
PubkeyAuthentication yes<br />
AuthorizedKeysFile .ssh/authorized_keys</p>
<p>変更後sshを再起動します。<br />
<code>service sshd restart</code></p>
<h2>SSHで認証する</h2>
<p>それでは設定がうまくいっているか秘密鍵を使ってサーバにログインします。</p>
<p><code>ssh アカウント名@ホストIPアドレス</code></p>
<p>例rootユーザーでIPアドレス192.168.1.110の場合<br />
<code>ssh root@192.168.1.110</code></p>
<p>初回ログインのみ「このサーバを信頼していいか」という警告メッセージが英語で表示されます。フィンガープリントと呼ばれるハッシュ値が表示され、本当に接続していいですか？と確認してくるので「yes」と入力します。</p>
<p>本来ならサーバに公開鍵を渡す前にフィンガープリントを事前にメモっておき警告時に表示されたフィンガープリントの値と一致するか確認するのですが面倒なのでほとんどの場合はyesと答えておきます。</p>
<p>一度YESと答えると次回から聞いてきません。一度接続するとフィンガープリントはクライアントPCの「~/.ssh/known_hosts」ファイルに保存されます。</p>
<p><img class="alignnone size-full wp-image-325" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg3.png" alt="" width="541" height="327" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg3.png 541w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg3-300x181.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/08/sshimg3-320x193.png 320w" sizes="(max-width: 541px) 100vw, 541px" /></p>
<p>configファイルはssh接続情報を定義して保存するファイルです。これを設定すると接続するホスト情報を簡略化できたり接続が簡単になります。</p>
<p><code></code></p>
]]></content:encoded>
			</item>
	</channel>
</rss>
