<?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>SpaLinux.com - สปาลีนุกซ์ &#187; SSH</title>
	<atom:link href="http://spalinux.com/tag/ssh/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>เพื่อชีวิตที่ผ่อนคลายของคนใช้ลีนุกซ์</description>
	<lastBuildDate>Sat, 12 May 2012 10:38:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ล็อกอินเข้าลีนุกซ์จาก Windows ด้วย PuTTY</title>
		<link>http://spalinux.com/2012/04/login-to-linux-from-windows-by-putty</link>
		<comments>http://spalinux.com/2012/04/login-to-linux-from-windows-by-putty#comments</comments>
		<pubDate>Sat, 21 Apr 2012 10:58:59 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[CentOS 6]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=2131</guid>
		<description><![CDATA[หลังจากติดตั้ง คอนฟิกเน็ตเวิร์ค เช่น ตั้งค่า IP Address, Netmask, Gateway บนลีนุกซ์เสร็จเรียบร้อย การคอนฟิกที่เหลือ สามารถล็อกอินจากเครื่องอื่นมาทำงานได้โดยผ่านทาง SSH (Secure shell) ในบทนี้จะแนะนำโปรแกรม PuTTY  ซึ่งเป็นโปรแกรมที่สามารถใช้งานได้ฟรี รันบน Windows ให้สามารถล็อกอินเข้าลีนุกซ์เครื่องที่เราติดตั้งได้ ดาวน์โหลดโปรแกรม PuTTY ค้นหาคำว่า &#8220;PuTTY&#8221; จาก google หรือไม่ก็เข้าเว็บไซต์ PuTTY Download Page โดยตรงที่ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html การใช้งาน PuTTY สามารถทำได้สองแบบคือดาวน์โหลดไฟล์ putty.exe มาไฟล์เดียว ก็สามารถใช้งานได้แล้ว หรือจะเลือกแบบ Windows installer เพื่อติดตั้งเป็นชุดโปรแกรม โดยจะมีโปรแกรมย่อยอื่นๆ ด้วย เพื่อความง่าย แนะนำให้ดาวน์โหลดแค่ putty.exe ไฟล์เดียว ด้านล่างหัวข้อ &#8220;For Windows on Intel x86&#8243; คลิ้กที่ลิ้งค์ [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากติดตั้ง คอนฟิกเน็ตเวิร์ค เช่น ตั้งค่า IP Address, Netmask, Gateway บนลีนุกซ์เสร็จเรียบร้อย</p>
<p>การคอนฟิกที่เหลือ สามารถล็อกอินจากเครื่องอื่นมาทำงานได้โดยผ่านทาง SSH (Secure shell)</p>
<p>ในบทนี้จะแนะนำโปรแกรม PuTTY  ซึ่งเป็นโปรแกรมที่สามารถใช้งานได้ฟรี รันบน Windows ให้สามารถล็อกอินเข้าลีนุกซ์เครื่องที่เราติดตั้งได้</p>
<p><span id="more-2131"></span></p>
<h4>ดาวน์โหลดโปรแกรม PuTTY</h4>
<p>ค้นหาคำว่า &#8220;PuTTY&#8221; จาก google หรือไม่ก็เข้าเว็บไซต์ PuTTY Download Page โดยตรงที่</p>
<p>http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/01-PuTTY-Download-Page.png"><img class="alignnone size-full wp-image-2132" title="01-PuTTY-Download-Page" src="http://spalinux.com/wp-content/uploads/2012/04/01-PuTTY-Download-Page.png" alt="" width="804" height="323" /></a></p>
<p>การใช้งาน PuTTY สามารถทำได้สองแบบคือดาวน์โหลดไฟล์ putty.exe มาไฟล์เดียว ก็สามารถใช้งานได้แล้ว หรือจะเลือกแบบ Windows installer เพื่อติดตั้งเป็นชุดโปรแกรม โดยจะมีโปรแกรมย่อยอื่นๆ ด้วย</p>
<p>เพื่อความง่าย แนะนำให้ดาวน์โหลดแค่ putty.exe ไฟล์เดียว</p>
<p>ด้านล่างหัวข้อ &#8220;For Windows on Intel x86&#8243; คลิ้กที่ลิ้งค์ &#8220;putty.exe&#8221; เพื่อดาวน์โหลดไฟล์ สมมติว่าเซฟลง Desktop</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/02-putty.exe-on-Desktop.png"><img class="alignnone size-full wp-image-2133" title="02-putty.exe-on-Desktop" src="http://spalinux.com/wp-content/uploads/2012/04/02-putty.exe-on-Desktop.png" alt="" width="75" height="220" /></a></p>
<p>&nbsp;</p>
<p>เพียงแค่นี้ก็สามารถใช้โปรแกรม putty เพื่อล็อกอินเข้าเครื่องลีนุกซ์ได้แล้ว</p>
<p>ดับเบิ้ลคลิ้กที่ไอคอนไฟล์ putty.exe เพื่อรันโปรแกรม</p>
<p>หน้าจอของ PuTTY แสดงขึ้นมา เพื่อให้กรอกข้อมูล</p>
<ul>
<li>Host Name (or IP Address) ใส่ IP Address ของเครื่องลีนุกซ์ เช่น 192.168.5.62</li>
<li>Port ใส่ 22</li>
<li>Connection type: เลือก [x] SSH</li>
</ul>
<p>แล้วกด [Open] หรือกดปุ่ม [Enter]</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/03-putty-session.png"><img class="alignnone size-full wp-image-2134" title="03-putty-session" src="http://spalinux.com/wp-content/uploads/2012/04/03-putty-session.png" alt="" width="456" height="442" /></a></p>
<p>&nbsp;</p>
<p>หากเป็นการล็อกอินด้วย SSH เข้าไปลีนุกซ์เครื่องที่ระบุ เป็นครั้งแรก หน้าจอจะแสดงเตือน &#8220;PuTTY Security Alert&#8221; เป็นข้อมูลเกี่ยวกับ key ต่างๆ ที่ใช้ใน  Secure Shell</p>
<p>กด [Yes] เพื่อยืนยันว่าถูกต้อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/p4-PuTTY-Security-Alert.png"><img class="alignnone size-full wp-image-2135" title="p4-PuTTY-Security-Alert" src="http://spalinux.com/wp-content/uploads/2012/04/p4-PuTTY-Security-Alert.png" alt="" width="389" height="237" /></a></p>
<p>&nbsp;</p>
<p>หมายเหตุ หากต้องการยืนยันความถูกต้องกับข้อมูลที่เตือนขึ้นมา สามารถตรวจสอบได้โดยเปรียบเทียบ fingerprint บนหน้าจอที่แสดง กับ Secure Shell ที่รันบนเซิร์ฟเวอร์</p>
<p>เช่นข้อมูลเกี่ยวกับ fingerprint ที่เตือนขึ้นมาแสดง</p>
<p>The server&#8217;s rsa2 key fingerprint is:<br />
ssh-rsa <span style="color: #0000ff;">2048 42:b2:98:95:57:14:aa:0a:6c:fa:e8:3a:7b:d8:0b:63</span></p>
<p>เปรียบเทียบกับ Secure Shell ที่รันบนเซิรฟ์เวอร์ ใช้คำสั่ง ssh-keygen -lf เพื่อดู fingerprint</p>
<pre>[root@cent6 ~]# <strong>ssh-keygen -lf /etc/ssh/ssh_host_rsa_key</strong>
<span style="color: #0000ff;">2048 42:b2:98:95:57:14:aa:0a:6c:fa:e8:3a:7b:d8:0b:63</span> /etc/ssh/ssh_host_rsa_key.pub (RSA)</pre>
<p>ผลที่ได้ต้องออกมาตรงกัน เป็นการยืนยันว่า เราล็อกอินเข้าไปในเครื่องที่เราต้องการจริง</p>
<p>หน้าจอให้ใส่ login as: ใส่ root และพิมพ์รหัสผ่านของ root ให้ถูกต้อง ก็จะสามารถล็อกอินเข้าสู่เครื่องลีนุกซ์ได้ เปรียบเสมือนเรานั่งทำงานอยู่ที่หน้าจอคอนโซลของเครื่องลีนุกซ์เลย</p>
<p><a href="http://spalinux.com/wp-content/uploads/2012/04/p5-login-as.png"><img class="alignnone size-full wp-image-2136" title="p5-login-as" src="http://spalinux.com/wp-content/uploads/2012/04/p5-login-as.png" alt="" width="449" height="104" /></a></p>
<p>&nbsp;</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">PuTTY Download Page</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2012/04/login-to-linux-from-windows-by-putty/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH &#8211; Secure Shell ล็อกอินด้วย Public Key Authentication</title>
		<link>http://spalinux.com/2008/10/ssh_secure_shell_login_using_public_key_authentication</link>
		<comments>http://spalinux.com/2008/10/ssh_secure_shell_login_using_public_key_authentication#comments</comments>
		<pubDate>Thu, 09 Oct 2008 18:30:13 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[public key authentication]]></category>
		<category><![CDATA[secure shell]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=235</guid>
		<description><![CDATA[จากที่ได้ แนะนำการใช้งานโปรแกรม Secure Shell (SSH) เพื่อล็อกอินไปยังเครื่องอื่นนั้น โดยดีฟอลต์แล้วจะต้องใส่รหัสผ่าน (password) ก่อนที่จะล็อกเข้าไปยังเครื่องปลายทางได้ หรือรันคำสั่งบนเครื่องปลายทางได้ แต่ในบางครั้งการที่ต้องใส่รหัสผ่านทุกครั้งทำให้ไม่สะดวกในการใช้งาน ตัวอย่างเช่นต้องล็อกอินไปยังหลายๆ เครื่องอยู่เป็นประจำ หรือการเขียน Shell Script เพื่อล็อกอินไปยังเครื่องต่างๆ เพื่อรันคำสั่งที่ต้องการ   ในที่นี้จะแนะนำการล๊อกอินไปยังเครื่องปลายทางโดยไม่ต้องใส่รหัสผ่าน แต่อาศัยการล็อกด้วย Public Key Authentication การตรวจสอบสิทธิในการล็อกอินโดยใช้ Public Key Authentication ในตัวอย่างของบทความนี้จะคอนฟิกในระดับ user คือจะคอนฟิก user1 บนเครื่องไคลเอนต์ (Client) เพื่อจะล็อกอินไปเป็น user2 บนเซิร์ฟเวอร์ (Server) โดยไม่ต้องใส่รหัสผ่าน ขั้นตอนที่ต้องทำมีดังนี้ หมายเหตุ ตัวอย่างในบทความนี่ทดสอบบน Fedora 9 ซึ่งคอนฟิกดีฟอลต์จะอนุญาตให้สามารถล็อกอินแบบ Public Key Authentication ได้ หากคุณใช้ลีนุกซ์เวอร์ชั่นอื่นๆ ถ้าทำตามแล้วไม่ได้ ลองตรวจสอบไฟล์คอนฟิกของ ssh server ซึ่งอยู่ในไฟล์ /etc/ssh/sshd_config [...]]]></description>
			<content:encoded><![CDATA[<p>จากที่ได้ <a href="http://spalinux.com/2008/10/introduction_to_secure_shell_ssh" target="_self">แนะนำการใช้งานโปรแกรม Secure Shell (SSH)</a> เพื่อล็อกอินไปยังเครื่องอื่นนั้น โดยดีฟอลต์แล้วจะต้องใส่รหัสผ่าน (password) ก่อนที่จะล็อกเข้าไปยังเครื่องปลายทางได้ หรือรันคำสั่งบนเครื่องปลายทางได้</p>
<p>แต่ในบางครั้งการที่ต้องใส่รหัสผ่านทุกครั้งทำให้ไม่สะดวกในการใช้งาน ตัวอย่างเช่นต้องล็อกอินไปยังหลายๆ เครื่องอยู่เป็นประจำ หรือการเขียน Shell Script เพื่อล็อกอินไปยังเครื่องต่างๆ เพื่อรันคำสั่งที่ต้องการ   ในที่นี้จะแนะนำการล๊อกอินไปยังเครื่องปลายทางโดยไม่ต้องใส่รหัสผ่าน แต่อาศัยการล็อกด้วย Public Key Authentication</p>
<p><span id="more-235"></span></p>
<p>การตรวจสอบสิทธิในการล็อกอินโดยใช้ Public Key Authentication ในตัวอย่างของบทความนี้จะคอนฟิกในระดับ user คือจะคอนฟิก user1 บนเครื่องไคลเอนต์ (Client) เพื่อจะล็อกอินไปเป็น user2 บนเซิร์ฟเวอร์ (Server) โดยไม่ต้องใส่รหัสผ่าน ขั้นตอนที่ต้องทำมีดังนี้</p>
<p>หมายเหตุ ตัวอย่างในบทความนี่ทดสอบบน Fedora 9 ซึ่งคอนฟิกดีฟอลต์จะอนุญาตให้สามารถล็อกอินแบบ Public Key Authentication ได้ หากคุณใช้ลีนุกซ์เวอร์ชั่นอื่นๆ ถ้าทำตามแล้วไม่ได้ ลองตรวจสอบไฟล์คอนฟิกของ ssh server ซึ่งอยู่ในไฟล์ /etc/ssh/sshd_config โดยคอนฟิกที่ต้องเปิดไว้คือ PubkeyAuthentication และ AuthorizedKeysFile</p>
<h4>สร้าง Public/Private Key ของ user1 บนเครื่องไคลเอนต์</h4>
<p>ล๊อกอินเป็น user1 บนเครื่องไคลเอนต์แล้วใช้คำสั่ง ssh-keygen เพื่อสร้าง Public/Private Key</p>
<p>ตัวอย่างการใช้คำสั่ง ssh-keygen</p>
<pre>[user1@client ~]$ <strong>ssh-keygen
</strong>Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
Created directory '/home/user1/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
fd:5c:11.......... user1@client</pre>
<p>สองไฟล์ที่ถูกสร้างจากการรันคำสั่ง ssh-keygen จะถูกเก็บไว้ในไดเร็คทอรี .ssh/ โดยจะมีไฟล์</p>
<ul>
<li><strong>id_rsa</strong> เป็นไฟล์ที่เก็บ Private Key ซี่งเป็นคีย์ที่เป็นความลับไม่แนะนำให้เปิดเผยไฟล์นี้ให้คนอื่นเห็น สังเกตได้จากสิทธิของไฟล์ (permission) จะเป็น 600</li>
<li><strong>id_rsa.pub</strong> เป็นไฟล์ที่เก็บ Public Key ซึ่งเป็นคีย์ที่สามารถเปิดเผยให้คนอื่นเห็นได้ แล้วใช้ในการเข้ารหัสข้อมูลเพื่อยืนยันว่าเป็นตัวเราจริงๆ โดยเราจะ copy ไฟล์นี้ไปยัง user2 บนเครื่องปลายทาง</li>
</ul>
<h4>ไฟล์ authorized_keys ของ user2 บนเครื่องเซิร์ฟเวอร์</h4>
<p>ขั้นตอนต่อไปคือ copy ไฟล์ Public Key ของ user1 จากเครื่องไคลเอนต์  ไปเก็บไว้ในไฟล์ authorized_keys ของ user2 บนเครื่องเซิร์ฟเวอร์ ซึ่งจะเป็นไฟล์ที่เก็บ Public Key ของ user ต่างๆ ที่มีสิทธิล๊อกอินมาเป็น user นี้โดยไม่ต้องใส่รหัส </p>
<p>วิธีการ copy ไฟล์  Public Key จากไคลเอนต์ไปยังเซิร์ฟเวอร์ สามารถทำได้โดยใช้คำสั่ง scp บนเครื่องไคลเอนต์</p>
<p>ตัวอย่างการ copy ไฟล์ จากเครื่องไคลเอนต์ไปยังเซิร์ฟเวอร์โดยใช้คำสั่ง scp</p>
<pre>[user1@client ~]$ <strong>scp .ssh/id_rsa.pub user2@server:
</strong>user2@server's password:
id_rsa.pub                              100%  394     0.4KB/s   00:00</pre>
<p>หมายเหตุ อย่าลืมเครื่องหมาย :  (colon) หลังคำว่า server เพื่อระบุว่าเป็นการ copy ระหว่างเครื่อง</p>
<p>ขั้นต่อไปล๊อกอินเป็น user2 บนเครื่องเซิร์ฟเวอร์ แล้วใช้คำสั่ง ls ดู จะเห็นไฟล์ที่ถูก copy มา ให้ใช้คำสั่ง cat เพื่อนำคีย์ในไฟล์นี้ไปต่อท้ายไฟล์ authorized_keys ของ user2</p>
<p>หมายเหตุ ต้องสร้างไดเร็คทอรี .ssh/ ของ user2 ไว้ก่อนที่จะสร้างหรือเพิ่มเติมไฟล์ authorized_keys ตามตัวอย่างด้านล้างนี้ได้</p>
<p><span style="color: #ff0000;">คำเตือน ระมัดระวังการใช้คำสั่ง cat เพื่อนำข้อมูลไปต่อท้ายไฟล์ต้องใช้เครื่องหมายมากกว่าสองอันติดกัน <strong>&gt;&gt;</strong>  </span></p>
<p>ตัวอย่างการสร้างไดเร็คทอรี .ssh/ และการเพิ่ม authorized_keys บนเซิร์ฟเวอร์</p>
<pre>[user2@server ~]$ <strong>ls -l
</strong>total 4
-rw-r--r-- 1 user2 users 394 2008-10-10 15:09 id_rsa.pub</pre>
<pre>[user2@server ~]$ <strong>mkdir .ssh</strong>
[user2@server ~]$ <strong>chmod 700 .ssh</strong>/</pre>
<pre>[user2@server ~]$ <strong>cat id_rsa.pub &gt;&gt; .ssh/authorized_keys</strong></pre>
<h4>ทดลองล็อกอินโดยใช้ Public Key Authentication</h4>
<p>ทดลองใช้ user1 บนเครื่องไคลเอนต์ไปยัง user2 บนเครื่องเซิร์ฟเวอร์ โดยรูปแบบการใช้งานยังเหมือนเดิมไม่เปลี่ยนแปลง จะเห็นว่าไม่ต้องใส่รหัสผ่าน (password) อีกต่อไปแล้ว</p>
<pre>[user1@client ~]$ <strong>ssh user2@server</strong>
[user2@server ~]$</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li>man sshd_config(5)</li>
<li><a href="http://spalinux.com/2008/10/introduction_to_secure_shell_ssh" target="_self">แนะนำการใช้งานโปรแกรม Secure Shell (SSH)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/ssh_secure_shell_login_using_public_key_authentication/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>แนะนำการใช้งานโปรแกรม Secure Shell (SSH)</title>
		<link>http://spalinux.com/2008/10/introduction_to_secure_shell_ssh</link>
		<comments>http://spalinux.com/2008/10/introduction_to_secure_shell_ssh#comments</comments>
		<pubDate>Fri, 03 Oct 2008 18:38:38 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Linux Shell]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[secure shell]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=230</guid>
		<description><![CDATA[SSH  (Secure Sell) คือโปรแกรมสำหรับล็อกอินและรันคำสั่งที่เครื่องปลายทางได้ โดยไม่จำเป็นต้องไปใช้งานที่หน้าจอคอนโซลของเครื่อง จุดประสงค์หลักของโปรแกรมคือทำหน้าที่แทนโปรแกรมประเภท rlogin, rsh หรือ telnet โดยจะมีการเข้ารหัสข้อมูล (encrypted) เพื่อความปลอดภัยของข้อมูลที่ส่งระหว่าง SSH Client และ SSH Server ชุดโปรแกรมที่ติดตั้งมากับลีนุกซ์ส่วนใหญ่คือ OpenSSH ประกอบด้วยเซิร์ฟเวอร์และไคลเอนต์ เครื่องปลายทางรันเซอร์วิส SSH Server เพื่อรองรับการล็อกอิน จากโปรแกรมประเภท SSH Client โดยคอนฟิกไฟล์หลักของเซิร์ฟเวอร์จะอยู่ในไดเร็กทอรี /etc/ssh/ ไฟล์คอนฟิกหลักคือไฟล์ /etc/ssh/sshd_config คำแนะนำ โปรแกรม PuTTY เป็นโปรแกรมประเภท SSH Client ที่สามารถรันได้บน Microsoft Windows ด้วยคุณสมบัติมากมาย รองรับทั้ง Secure Shell, Telnet และสามารถทำหน้าที่เป็น Terminal ผ่านทาง Serial หรือ COM Port ได้ด้วย (เช่นเดียวกับ [...]]]></description>
			<content:encoded><![CDATA[<p>SSH  (Secure Sell) คือโปรแกรมสำหรับล็อกอินและรันคำสั่งที่เครื่องปลายทางได้ โดยไม่จำเป็นต้องไปใช้งานที่หน้าจอคอนโซลของเครื่อง จุดประสงค์หลักของโปรแกรมคือทำหน้าที่แทนโปรแกรมประเภท rlogin, rsh หรือ telnet โดยจะมีการเข้ารหัสข้อมูล (encrypted) เพื่อความปลอดภัยของข้อมูลที่ส่งระหว่าง SSH Client และ SSH Server</p>
<p><span id="more-230"></span></p>
<p>ชุดโปรแกรมที่ติดตั้งมากับลีนุกซ์ส่วนใหญ่คือ OpenSSH ประกอบด้วยเซิร์ฟเวอร์และไคลเอนต์</p>
<p>เครื่องปลายทางรันเซอร์วิส SSH Server เพื่อรองรับการล็อกอิน จากโปรแกรมประเภท SSH Client โดยคอนฟิกไฟล์หลักของเซิร์ฟเวอร์จะอยู่ในไดเร็กทอรี /etc/ssh/ ไฟล์คอนฟิกหลักคือไฟล์ /etc/ssh/sshd_config</p>
<p><strong>คำแนะนำ</strong> โปรแกรม <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">PuTTY</a> เป็นโปรแกรมประเภท SSH Client ที่สามารถรันได้บน Microsoft Windows ด้วยคุณสมบัติมากมาย รองรับทั้ง Secure Shell, Telnet และสามารถทำหน้าที่เป็น Terminal ผ่านทาง Serial หรือ COM Port ได้ด้วย (เช่นเดียวกับ HyperTerminal) และที่สำคัญสามารถงานใช้ได้ฟรีอย่างถูกต้อง (free software)</p>
<p>ในบทความนี้จะแนะนำวิธีการใช้คำสั่ง Secure Shell บนลีนุกซ์เป็นหลัก โดยตัวอย่างทั้งหมดจะทดสอบบน Fedora 9</p>
<h4>เริ่มต้นใช้งาน SSH Client (begin_ssh_client)</h4>
<p>เริ่มต้นทดลองใช้คำสั่ง ssh เพื่อล็อกอินไปยังเครื่องรีโมต ด้วยการพิมพ์คำสั่ง ssh แล้วตามด้วย IP Address หรือ Hostname ของเครื่องรีโมตปลายทาง</p>
<p>ตัวอย่างการล็อกอินไปที่เครื่องรีโมตครั้งแรก</p>
<pre>[user1@client ~]$ <strong>ssh 192.168.0.1
</strong>The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established.
RSA key fingerprint is 5a:f2:9f:1b:8a:.....
Are you sure you want to continue connecting (yes/no)?<strong> yes
</strong>Warning: Permanently added '192.168.0.1' (RSA) to the list of known hosts.
user1@192.168.0.1's password:
Last login: Thu Oct  2 10:46:39 2008 from 192.168.0.15
[user1@server ~]$</pre>
<p>ถ้าเพิ่งเริ่มล็อกอินไปยังเครื่องรีโมตครั้งแรก จะมีข้อความเกี่ยวกับ RSA key ขึ้นมาถามว่า yes หรือ no การตอบ yes คือการยอมรับคีย์ (RSA key) จากเซิร์ฟเวอร์ปลายทางมา เพื่อใช้ในการเข้ารหัสระหว่างไคลเอนต์และเซิร์ฟเวอร์ ต้องตอบ yes อย่างเดียวเท่านั้นเพื่อยอมรับคีย์นี้ ถ้าตอบ no ไปก็ไม่สามารถล็อกไปยังเครื่องปลายทางได้</p>
<p>เมื่อตอบ yes ไป คีย์ที่ได้รับมา เครื่องไคลเอนต์จะเก็บคีย์นี้ไว้ในรายชื่อที่เรียกว่า ‘known hosts’ โดยจะบันทีกเป็นไฟล์อยู่ในไดเร็กทอรี $HOME/.ssh/ ($HOME คือ home directory ของผู้ที่ใช้คำสั่งบนเครื่องไคลเอนต์)</p>
<p>ตัวอย่างไฟล์ที่เก็บ known hosts</p>
<pre>[user1@client1 ~]$ cat .ssh/known_hosts
192.168.0.1 ssh-rsa AAAAB..........................</pre>
<p>ประการหนึ่งที่เก็บรายชื่อ known hosts ไว้ ด้วยเหตุผลทางด้านความปลอดภัย (Security) โดยคีย์ที่เก็บไว้ในไฟล์นี้สามารถใช้ในการเปรียบเทียบกับคีย์ที่ได้รีบมาใหม่จากเซิร์ฟเวอร์ ว่าตรงกันหรือไม่ เพื่อยืนยันในครั้งต่อที่ล็อกอินเข้าไปเครื่องเดิมนี้ว่า เป็นเครื่องที่ถูกต้อง ใช่ที่เราต้องการจริงๆ ไม่ใช่เครื่องอื่นๆ ที่ปลอมแปลง IP Address มาตรงกัน</p>
<p>ตัวอย่างการล็อกอินไปที่เครื่องที่ถูกปลอมแปลง IP Address โดยจะมีข้อความฟ้องว่าคีย์ที่ได้มาไม่ถูกต้อง</p>
<pre>[user1@client ~]$ <strong>ssh 192.168.0.1</strong>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
<span style="color: #ff0000;">Someone could be eavesdropping on you right now (man-in-the-middle attack)!
</span>It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
5a:f2:9f:...
Please contact your system administrator.
Add correct host key in /home/user1/.ssh/known_hosts to get rid of this message.
Offending key in /home/user1/.ssh/known_hosts:1
RSA host key for 192.168.0.1 has changed and you have requested strict checking.
Host key verification failed.</pre>
<p>วิธีการแก้ไขถ้าเจอข้อความแบบนี้ คือต้องตรวจสอบดูก่อนว่าเครื่องปลายทางที่เราจะล็อกเข้าไปนั้นเป็นเครื่องที่ถูกต้องจริงๆ โดยเปรียบเทียบคีย์ของ Secure Shell ซึ่งถูกเก็บไว้ในไฟล์ /etc/ssh/ssh_host_rsa_key.pub ซึ่งอาจมีการเปลี่ยนแปลงได้ ด้วยการติดตั้งลีนุกซ์ใหม่ หรือใช้คำสั่ง ssh-keygen ในการสร้างคีย์ใหม่</p>
<p>ถ้าดูแล้วเป็นเครื่องที่ถูกต้องจริงๆ วิธีการแก้ไขคือแก้ไฟล์ $HOME/.ssh/known_hosts โดยลบบรรทัดที่มี IP Address ของเครื่องปลายทางออกไป แล้วพิมพ์คำสั่ง ssh อีกครั้ง จะมีข้อความถาม yes หรือ no เหมือนครั้งแรก เพื่อเก็บคีย์ใหม่เข้าไปในไฟล์ known_hosts อีกครั้ง</p>
<p>คำเตือน แต่ถ้าตรวจสอบเครื่องปลายทางแล้วไม่ถูกต้อง อาจเป็นเครื่องของคนที่พยายามเจาะระบบด้วยการปลอมแปลง IP Address ก็เป็นได้เพื่อคอยดักเก็บรหัสของเรา เพราะฉะนั้นห้ามทำตามวิธีด้านบนเด็ดขาด ให้ปรึกษาคนดูแลระบบเพื่อแก้ไขโดยด่วน</p>
<h4>ระบุชื่อ user ที่ต้องการล็อกอิน (Specify user login)</h4>
<p>โดยดีฟอลต์เมื่อใช้คำสั่ง ssh บนไคลเอนต์ เพื่อล็อกไปยังเซิร์ฟเวอร์ โปรแกรม ssh จะพยายามล็อกอินด้วย username ของคนที่รันคำสั่ง เช่นผู้ใช้ที่ชื่อว่า user1 พิมพ์คำสั่ง ssh 192.168.0.1 จะเป็นการล็อกอินไปที่เครื่อง 192.168.0.1 ด้วยชื่อผู้ใช้ user1</p>
<p>ถ้าต้องการระบุเป็นชื่ออื่น สามารถใช้ออปชั่น ‘-l’ แล้วตามด้วยชื่อผู้ใช้ปลายทาง หรือพิมพ์ ในรูปแบบ <a href="mailto:user@hostname">user@hostname</a>  เช่น ต้องการล็อกอินไปยังปลายทางด้วยชื่อผู้ใช้ user2 สามารถทำได้สองวิธีแล้วแต่ถนัดดังนี้</p>
<p>วิธีแรก ใช้ออปชั่น ‘-l’ แล้วตามด้วยชื่อผู้ใช้ปลายทาง</p>
<pre>[user1@client ~]$ <strong>ssh -l user2 192.168.0.1
</strong>user1@192.168.0.1's password:</pre>
<pre>Last login: Thu Oct  2 11:22:24 2008 from 192.168.0.15
[user2@server ~]$</pre>
<p>วิธีที่สอง ใช้รูปแบบ user@hostname</p>
<pre>[user1@client ~]$ <strong>ssh user2@192.168.0.1
</strong>user1@192.168.0.1's password:</pre>
<pre>Last login: Thu Oct  2 11:23:13 2008 from 192.168.0.15
[user2@server ~]$</pre>
<h4>การรันคำสั่งบนเครื่องปลายทางด้วย SSH (Run remote command with SSH)</h4>
<p>ในบางครั้งเราต้องการเพียงแค่รันคำสั่งบนเครื่องปลายทาง เช่นต้องการตรวจสอบสถานะการทำงานของเครื่องปลายทางด้วยคำสั่ง uptime และ free แทนที่ต้องล็อกอินเข้าไปที่เครื่องปลายทางเลย สามารถใช้คำสั่ง ssh แล้วระบุคำสั่งที่ต้องการรันบนเครื่องรีโมตได้เลย โดยให้อยู่ในเครื่องหมาย single-quote ‘</p>
<p>ตัวอย่างการรันคำสั่งบนเครื่องปลายทางด้วย ssh</p>
<pre>[user1@client ~]$ <strong>ssh user2@192.168.0.1 'uptime; echo; free'
</strong>user1@192.168.0.1's password:
 16:01:39 up 2 days, 13:17,  4 users,  load average: 0.03, 0.02, 0.00</pre>
<pre>             total       used       free     shared    buffers     cached
Mem:        515064     235620     279444          0      48516     102124
-/+ buffers/cache:      84980     430084
Swap:       987956         52     987904</pre>
<p>ผลลัพธ์ที่ได้จะเหมือนกับการล็อกอินเข้าไปที่เครื่องปลายทางก่อน แล้วค่อยรันคำสั่งต่างๆ</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.openssh.com" target="_blank">OpenSSH</a></li>
<li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">PuTTY: A Free Telnet/SSH Client</a></li>
</ul>
<p><a href="http://www.openssh" target="_blank"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/introduction_to_secure_shell_ssh/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

