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

通過 OpenSSH 隧道的 CVS

2018-06-11    來源:

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

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

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

上一篇:SOHO又添新翼

下一篇:軟件測(cè)試本土化