中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

通過 OpenSSH 隧道的 CVS

2018-06-11    來源:

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
SSH 隧道提供了訪問 CVS 資源庫的安全方式。學習如何安裝 Cygwin 開放源碼 OpenSSH 為 Microsoft Windows 平臺上的 WebSphere Application Server 開發(fā)人員提供了一種安全機制。
簡介
去年冬天,我和我的一個同事正致力于一系列論文,我們用電子郵件進行聯(lián)系。這是一種麻煩的做事方式,我們確實需要建立一個中央 CVS 資源庫以從那里工作,而且都要能夠安全地訪問這個資源庫。由于我們都是移動雇員,所以我們沒有屬于自己的辦公室和信箋服務器,這使得問題更加復雜。我們還需要提供安全訪問服務器的方法。這里所討論的服務器,是我家里的一臺運行 Windows 2000 的舊 500 Mhz Pentium III 機器,它有多余的能力并且使用我的 DSL 線路。所以,安全訪問是保護數(shù)據(jù)的基本要求。
下一步就是不用購置昂貴的硬件或軟件來解決這些問題。顯然,這意味著要認真仔細地考慮可用的開放技術。本文記述了關于這個問題的解決方案:使用開放源碼 Cygwin 包建立 OpenSSH 隧道以便對 CVS 資源庫進行安全的遠程訪問。
安裝 Cygwin 分發(fā)版
客戶機和服務器上都需要安裝 Cygwin 分發(fā)版。應該在兩端安裝同樣的基本軟件包,并包含以下圖 1 中抓屏的信息。
圖 1. Cygwin 安裝窗口:
 
Cygwin 安裝(請參見圖 1)窗口提供可以安裝的各種軟件包的列表。首先,單擊右上角的“View”按鈕,直到看到上面顯示的“Full”視圖。要安裝軟件包,需要單擊黃色突出顯示的區(qū)域,直到出現(xiàn)版本號。遺憾的是,在這個抓屏中,我已經(jīng)安裝了 OpenSSH 軟件包,并且圖中顯示以前的版本作為安裝的候選。無論如何,要在窗口的這個區(qū)域中不斷單擊,直到出現(xiàn)最新的版本號。另外,如果單擊版本號右邊的框,您還將下載該軟件包的源代碼。Cygwin 安裝的一個優(yōu)點就是自動下載所有相關的軟件包。盡管運行 OpenSSH 不需要所有的 Cygwin 軟件包,不過我在這里推薦安裝其中的一些:
bash
bzip2
crypt
cygunsrv(重要的)
cygutils
cvs(顯而易見)
Cygwin
inetutils
man
openssh
讓 Cygwin 自動選擇所有相關軟件包。
系統(tǒng)環(huán)境變量
在 Windows start 菜單,按照下列步驟進行選擇:
Start 菜單 -> Settings -> Control Panel -> System
單擊 Advanced 選項卡
單擊“Environment Variables”按鈕
系統(tǒng)環(huán)境變量在窗口的“下”半部分。請一定在那里添加/更改變量值,而不要窗口上半部進行,上半部只適用于登錄的用戶。
安裝了軟件包之后,就要設置下列系統(tǒng)環(huán)境變量。請一定將這些變量設置為全局系統(tǒng)環(huán)境變量,而不要設置為用戶變量。
CYGWIN=ntsec
通過指定 ntsec 來定義正在使用 NT 安全性。這樣就允許象 chmod 和 chown 這樣的 Unix 命令在 Cygwin 環(huán)境中具有相關性。
將 x:\Cygwin\bin 添加至 PATH 系統(tǒng)變量以便 OpenSSH 軟件包可以找到必需的 dll 文件。完成上述操作后,必須重新引導才能正確地安裝這些服務。
用戶環(huán)境變量
對于每個用戶,要定義將他們的 HOME 子目錄指向其 Cygwin 主目錄。我的是 D:\Cygwin\home\alex。
服務器端配置
安裝 OpenSSH 服務器相當簡單。打開 Cygwin bash shell,然后輸入以下命令:
$ cd /usr/bin
$ ./ssh-host-config
回答那些提示(缺省值通常就可以了),并且要確保對“install as an NT service” 回答 Yes ? 否則它不能作為服務安裝且達不到配置服務器的目的。
設置用戶
通過將 CYGWIN 系統(tǒng)變量定義為 ntsec,這就可以讓 Cygwin 使用 NT 安全性來管理登錄。但是,為了使 sshd 能夠接受登錄,需要一個 passwd 文件。這可用以下代碼完成:
$ mkpasswd -l > /usr/etc/passwd
$ mkgroup -l > /usr/etc/group
請確保每次創(chuàng)建或刪除用戶時都再次運行這些命令 ? 否則將不能與 Windows 保持同步。此外,將需要重新啟動 Cygwin sshd 服務以使它讀入新的 passwd 文件。
仔細檢查以確保 passwd 文件包含每個用戶的主目錄。否則當用戶試圖通過 OpenSSH 隧道運行命令時,OpenSSH 將報告無法切換至用戶的主目錄。這是最讓人討厭的事。
注:mkpasswd 命令將用戶 Guest 插入 passwd 文件。我將其刪除,以消除一個潛在的安全性問題。
啟動 OpenSSH 服務器
基本上就是這些了。查看 Windows Services 控制面板圖標,確!癈ygwin sshd”服務已經(jīng)啟動并配置為自動啟動。如果 Cygwin sshd 服務沒有啟動,則手工啟動該服務。
圖 2. Windows 2000 services 控制面板
 
我在安裝過程中遇到的一個問題是 Cygwin sshd 服務不能找到需要的 Cygwin dll 文件。這是因為即使我已經(jīng)更新了 PATH 變量,但不知為何它仍沒有生效。重新引導機器就可以解決這個問題。
客戶機端配置
OpenSSH 客戶機端配置也很簡單。請確保在讓人們在其機器上設置 OpenSSH 客戶機以前已經(jīng)在服務器上定義了用戶,否則他們將不能登錄。
系統(tǒng)環(huán)境變量
在客戶機上添加以下系統(tǒng)環(huán)境變量:
CVS_RSH = ssh
注:對于變量為什么稱為 CVS_RSH 而不是 CVS_SSH 有完整的說明,搜索 www.google.com 將滿足那些人的好奇心。雖然如此,該變量定義了所有 CVS 命令將通過 OpenSSH 隧道運行。
您還應該為本地用戶設置用戶環(huán)境變量 HOME。
密碼短語
盡管您可能不需要在主目錄中運行下一節(jié)的 ssh-user-config 命令,但我發(fā)現(xiàn)它是令人鼓舞的。對每個提示回答 Yes,然后對需要作出決定的密碼短語也回答 Yes(ssh-user-config 為登錄的用戶在 ~/.ssh 目錄中生成許多文件)。
(alex) (Thu Jan 31 10:24:32 2002) (~/.ssh)
--> ls -l
total 9
-rw-r--r--1 alex None 339 Jan 30 16:06 authorized_keys
-rw-r--r--1 alex None 840 Jan 30 16:07 authorized_keys2
-rw-r--r--1 alex None 668 Jan 30 16:07 id_dsa
-rw-r--r--1 alex None 610 Jan 30 16:07 id_dsa.pub
-rw-r--r--1 alex None 883 Jan 30 16:06 id_rsa
-rw-r--r--1 alex None 230 Jan 30 16:06 id_rsa.pub
-rw-r--r--1 alex None 535 Jan 30 16:06 identity
-rw-r--r--1 alex None 339 Jan 30 16:06 identity.pub
-rw-r--r--1 alex None 247 Jan 30 16:07 known_hosts
這些文件主要是私鑰/公鑰對。公鑰有 .pub 擴展名而私鑰(粗體)是沒有 .pub 擴展名的同名文件。您需要確保使私鑰是安全的,否則,任何人都可以使用您的私鑰和密碼短語偽裝成您通過 OpenSSH 隧道進入服務器。
known_hosts 文件是在第一次與 OpenSSH 服務器連接時生成的。ssh 將在您第一次通過 OpenSSH 隧道與服務器連接時下載服務器的公鑰。這樣,在以后的連接中,OpenSSH 隧道可以確保您連接的服務器確實是同一臺服務器而不是某人假扮作那臺服務器。如果在服務器上更改了私鑰/公鑰對,那么所有的客戶機在能夠與您的服務器連接前,都將必須下載公鑰。
這就是出現(xiàn)安全性問題的地方。在密碼短語提示期間,如果不輸入密碼短語,則 OpenSSH 服務器將只用證書文件驗證用戶。這很方便,因為可以完全無縫地通過隧道進入服務器。您需要對用戶訪問服務器時是否需要密碼短語加以判斷。
那么為什么我要生成所有其它的公鑰/私鑰對?我不知道 ? 但我認為一次完成比反復地做更容易。
配置 OpenSSH 客戶機
打開 Cygwin bash shell,然后輸入以下命令:
$ cd
$ /usr/bin/ssh-user-config
對 Yes/No 提示回答 Yes(完整地輸入)并且在被提示時輸入密碼短語(如果正在使用)。您可以用這樣的方式生成所有可能的公鑰/私鑰對。完成這些后,需要將某些文件移至 OpenSSH 服務器。
學習一些基本 ssh 命令
ssh 命令遵循以下命令行語法:
ssh hostname -l username command-line-string
注:當您第一次訪問 OpenSSH 服務器時,將提示您獲取服務器的 RSA 密鑰。請這樣做,以便自動驗證正在連接的服務器確實是同一臺服務器。
因此,要用我的用戶名 alex 訪問我的服務器 polozoff.userv.ibm.com 并且列出根子目錄,我可以輸入以下命令:
ssh polozoff.userv.ibm.com -l alex ls /
因為這是我首次訪問 OpenSSH 服務器,所以提示輸入我的密碼。輸入密碼后,就會顯示 ls / 命令的輸出。
一個有趣的用于調試目的的 ssh 命令使用兩個 -v,如下所示:
ssh -v -v polozoff.userv.ibm.com -l alex ls /
這會輸出 ssh 會話的大量有趣的跟蹤信息。
使用剛剛學到的 ssh 命令
既然已經(jīng)運行了一些基本的 ssh 命令,您需要將生成的一些公鑰文件移至服務器,以便使其能正確的認證您。在 Cygwin bash shell 輸入以下命令:
$ cd
$ ssh hostname -l username mkdir .ssh
$ ssh hostname -l username chmod og-w .ssh
$ scp ~/.ssh/authorized_keys2 username@hostname:.ssh/authorized_keys2
我運行相同命令所輸入的實際示例是 hostname=polozoff.userv.ibm.com 和 username=alex。
$ cd
$ ssh polozoff.userv.ibm.com -l alex mkdir .ssh
$ ssh polozoff.userv.ibm.com -l alex chmod og-w .ssh
$ scp ~/.ssh/authorized_keys2 alex@polozoff.userv.ibm.com:.ssh/authorized_keys2
請確保正確輸入最后一條命令,否則一切工作將無法正確進行。最后一條命令將 authorized_keys2 文件安全地復制到 OpenSSH 服務器,F(xiàn)在,執(zhí)行任何 ssh 命令都不會再向您詢問密碼。相反,如果您定義了密碼短語,將向您詢問密碼短語。如果您輸入空白的密碼短語,那么服務器將用公鑰文件來驗證您的身份,而無需任何用戶交互。
要注意一點,不要使用 authorized_keys 文件。有許多關于該文件的安全性問題報告。您會留意到 authorized_keys 文件和 identity.pub 文件是相同的。它們完全是一回事。
從多臺客戶機機器訪問同一 OpenSSH 服務器
如果您將從多臺客戶機機器訪問 OpenSSH 隧道,那么您必須小心地處理所有步驟,除最后的 scp 安全復制以外,其余的步驟都是相同的。這是因為您需要對 authorized_keys2 文件附加文本,而不是重寫現(xiàn)有的文件。您在 OpenSSH 服務器上附加至該文件的每個密鑰都將允許那臺客戶機機器和服務器之間發(fā)生 ssh 隧道操作。為了安全地并且遠程地實現(xiàn)這一點,請在 Cygwin bash shell 上使用該代碼執(zhí)行以下命令:
$ cd
$ scp ~/.ssh/authorized_keys2 username@hostname:.ssh/newkey
$ ssh hostname -l username cat ~/.ssh/newkey >> ~/.ssh/authorized_keys2
使用 CVS
既然 OpenSSH 隧道建立,那么您可以跨越該隧道運行任何 CVS 命令,而且看起來就象在使用本地 CVS 資源庫一樣。盡管這不是關于配置 CVS 的文章,但您需要確保正確設置以下環(huán)境變量:
CVS_RSH=ssh
CVSROOT=:ext:alex@polozoff.userv.ibm.com:/usr/local/cvsRepository
前面討論過的 CVS_RSH 變量會告訴 CVS 所有 CVS 命令都將使用您建立的 ssh 隧道。CVSROOT 變量取決于您特定的 CVS 安裝,但我已加入了我的設置作為使用示例。
添加 VI
通常,在進行 CVS 提交時,它會打開 vi 以輸入注釋文本。安裝 Cygwin VIM 軟件包,然后在 /bin 中輸入:
$ ln -s vim.exe vi
結束語
開放源碼技術再次證明了它絕對免費地解決問題的有用性。OpenSSH 隧道也很容易配置,并且由于公鑰/私鑰對和密碼短語驗證的使用,使它成為極其安全的工作環(huán)境。在等待 Linux 遷移最終出現(xiàn)時,您現(xiàn)在就可以開始獲得可用的開放技術的好處了,F(xiàn)在對開放源碼技術的支持和使用確保了最終從專有操作系統(tǒng)的轉移將順利進行并且影響很小。而這不正是我們所做工作的意義嗎?
參考資料
Cygwin 網(wǎng)站有有用的信息。
在 Daniel Robbins 的兩部分文章中,您將了解 RSA 和 DSA 認證是如何工作的,并將知道如何正確設置無密碼認證。
Common threads : OpenSSH key management, Part 1
Common threads : OpenSSH key management, Part 2
關于作者
Alexandre Polozoff 是 WebSphere 軟件服務顧問,他參與了大容量、大范圍安裝的性能實踐和技術的開發(fā)。他的專長包括第三方工具評估以及執(zhí)行事后分析的最佳實踐。Alexandre 還不斷參與開放技術標準(SNMP、TMN 和 CMIP)的制定工作?梢酝ㄟ^ polozoff@us.ibm.com 與 Alexandre 聯(lián)系。

標簽: Google linux 安全 標準 代碼 電子郵件 訪問服務器 服務器 服務器端 搜索 網(wǎng)站 問題 選擇 用戶

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:SOHO又添新翼

下一篇:軟件測試本土化