編輯 /etc/ssh/sshd_config,加入或修改下列參數:
#禁止 root 以 SSH 登入
PermitRootLogin no
#僅允許特定群組登入
AllowGroups group1 group2
#僅允許特定帳號登入
AllowUsers user1 user2
#禁止使用空白密碼登入
PermitEmptyPasswords no
#限定只能使用 SSH2 協定
Protocol 2
#限定最多可以同時連線的數目
MaxStartups 5
在 Linux Server 下使用 Public/Private-Key(公鑰/私鑰) 遠端登入 SSH 的方式相信大家應該都不陌生(沒實做過的可參考鳥哥或study-area的文件),下面我所要介紹的是在 Windows 下使用 Public/Private-Key 遠端登入 SSH 的方法。
開始之前先說一下 “Public/Private-Key” 的概念,”Public/Private-Key” 是一種 “交互信任” 的機制,由用戶(Client)端以特定的加密演算法產生兩把金鑰,即 “Public-Key” 與 “Private-Key”,然後我們會把 “Private-Key” 留在自己的電腦,再把 “Public-Key” 傳送到遠端主機,當兩把金鑰碰在一起就會進行加解密比對,以確認是否彼此的身份是可以信任的,藉以執行特定的作業。
但我有一個更簡單的說法,與其說是 “公鑰” 與 “私鑰”,不如說是 “鎖頭” 與 “鑰匙”,由我自己來打造一個 “鎖頭” 及一把 “鑰匙”,我把這個 “鎖頭” 裝在某個門上,然後我就可以用我的這一把 “鑰匙” 來打開這個門了! 同樣的,我也可以把相同的 “鎖頭” 裝在很多的門上,那我就可以用這一把 “鑰匙” 來開啟很多門了(怎樣,很酷吧!)…這樣子的概念是否有比較清楚了呢?!
我們的目的是要從 Windows 以 “Public/Private-Key” 登入 Linux 主機,下面的步驟所要使用的軟體,都是由
PuTTY 所提供的工具程式,請先下載存放在自己的電腦:
產生 Public/Private-Key
執行 puttygen.exe:

- 先在 Parameters 的 “Type of key to generate” 欄位選 “SSH-2 DSA”。
- 如果你希望加密更多的位元數,可更改 “Number of bits in a generated key” 為 “2048″ 或更多。
- 然後按 [Generate],就會開始產生金鑰。在產生金鑰的同時,請隨意移動你的滑鼠,做為 “隨機亂數” 的取用。
金鑰產生完畢,如下圖所示:

- 在 “Public key for pasting into OpenSSH authorized_keys file” 裡那一堆的奇怪的字串就是 Public-Key,請直接複製裡面的內容,然後貼到 Linux 主機上的 “/home/登入帳號/.ssh/” 目錄下的 “authorized_keys” 檔案(請注意 “authorized_keys” 這個檔案的權限必須為 “644″)。
- 然後按 [Save private key] 按鈕,將 “Private-Key” 儲存在你的電腦。與 Private-Key 比較有關的是 “Key passphrase” 及 “Confirm passphrase” 這兩個欄位,這兩個欄位是 “Private-Key” 的密碼,如果有輸入密碼的話,只要在每次使用的第一次載入 Private-Key 時,會詢問你一次這個密碼,可以讓你的 Private-Key 較不容易被盜用。
- 另外還有一個 [Save public key],按下去之後就可以把 Public-Key 再備份一支到你的電腦 (但要使用這個備份的 Public-Key 時,必須把裡面的一些註解刪掉才行)。
使用 Private-Key 遠端登入
產生完上面的兩把金鑰,並將 Public-Key 傳送到遠端的電腦之後,接下來就是如何在本地端載入 Private-Key 的問題了,因為 Windows 並不像 Linux 有一個固定的地方存放 Private-Key,所以每次使用時都要各別載入,而且通常只能載入一個 Private-Key(例如 PieTTY 是從 [選項] → [詳細設定] → Connection → SSH → Auth 裡的 “Private key file for authentication” 載入),並且只能在該程式使用。所以接下來我們要執行 pageant.exe,這是 Private-Key 的代理程式,一執行這個程式,他會常駐在工作列的 “通知” 區塊,請在 pageant 的圖示上點滑鼠右鍵選 “Add Key”,將你的 Private-Key 檔案加入。在加入 Private-Key 時,如果你在上個步驟有設定 “Key passphrase”,它就會跳出對話框叫你輸入密碼。這個代理程式可以同時讓你輸入很多 Private-Key,並且所有同類型的程式都可以直接使用。
現在你就可以用你常用的 SSH 程式 (PieTTY, PuTTY…) 來登入到 Linux 主機看看,正確的話,只要輸入帳號,不用再打密碼就可以登入了。
補充…
使用 TortoiseSVN 配合 SSH
如果你有在使用 SVN 版本控制系統的話(假設 SVN Server 是架在 Linux 主機,用戶端為 Windows,用戶端有安裝 TortoiseSVN),剛好 SVN 就有提供 “SVN+SSH” 的通訊協定來傳輸資料。如果你的專案是以 “SVN+SSH” 做為通訊協定,每次你在執行任何 TortoiseSVN 的傳輸動作時,它就會 “不厭其煩” 的跟你詢問遠端主機的密碼。如果想要依照上面的步驟採 Public/Private-Key 來與 Linux 主機做用戶驗證,請記得再到 TortoiseSVN 的參數設定裡的 “Dialogs 2″ 將 “Recurse into unversioned folders” 及 “Contact the repository on startup” 這兩個選項都打勾,如下圖所示:

這樣應該就可以解決密碼詢問的問題了。
- Posted by citypig at 08:47 pm (1,389 views)
- No comments published
- Filed under: ssh, svn
粉久之前寫了一支 Log 分析的程式,可以統計、分析前一天系統的 Log,在這一份報表裡面,總是會看到有一些人使用「暴力法」,嘗試以各種帳號、密碼,藉由 SSH 或 FTP 入侵伺服器! 而我只能看著「前一天」的報表,分析他們用過哪些帳號、統計他們嘗試了幾次…實在有點不是滋味。
繼續閱讀 »
檔案下載
名 稱: PieTTY
版 本: 0.3.27
檔案大小: 316 KB
語言介面: 中英文版
版本性質: Freeware
釋出日期: 2005/06/14
作業平台: Windows NT/2000/XP
原創網站: PieTTY
檔案下載:
平常我都是用 SecureNetTerm,今天試用 PieTTY,發現這也是一支好用的 Telnet/SSH 終端機連線程式。PieTTY 修改自 Putty 0.57,對「亞洲語系」的相容性更高,用起來更方便、順手。
PieTTY 的特點
半透明顯示方式增為三種繪製方式以配合各種硬體。
內建 Big5-2003+中國海字集,免裝「Unicode 補完」!
內建簡易中文簡繁轉換(使用 autrijus 的表格) 。
使用界面大幅加強:無框視窗模式、記住最後視窗位置…
全新的視覺效果:視窗陰影!
可設為系統 telnet:// 處理程式
加強顯示非系統預設的語系,如在英文版Windows上設英文字型並同時顯示中文與韓文。
加強剪貼方式方便性,BBS 與 IRC 互貼彩色不是夢!
徹底解決之前各版點選網址的相關問題。
PieTTY 的缺點
沒有站台管理。
本文件是參考鳥哥寫的 logfile.sh,我把它改成符合我自己系統的 LOG 分析程式,全面以 Perl 重寫。我自己用了一段時間 (其實也半年了),覺得勉強還可以用,所以公開給大家用看看…
繼續閱讀 »