<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          SSH 指南

          作者: 時(shí)間:2007-05-23 來(lái)源:網(wǎng)絡(luò) 收藏
          最近不少網(wǎng)友問(wèn)關(guān)于 SSH 的問(wèn)題, 我在工作中經(jīng)常用這個(gè)東西, 整理過(guò)一些文檔,
          拿出來(lái)和大家共享一下.



          是 SSH (Secure SHell) 協(xié)議的免費(fèi)開(kāi)源實(shí)現(xiàn)。它用安全、加密的網(wǎng)絡(luò)連接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具。 支持 SSH 協(xié)議的版本 1.3、1.5、和 2。自從 OpenSSH 的版本 2.9 以來(lái),默認(rèn)的協(xié)議是版本 2,該協(xié)議默認(rèn)使用 RSA 鑰匙。

          1. 為什么使用 SSH?
          使用 OpenSSH 工具將會(huì)增進(jìn)你的系統(tǒng)安全性。 所有使用 OpenSSH 工具的通訊,包括口令,都會(huì)被加密。 telnet 和 ftp 使用純文本口令,并被明文發(fā)送。這些信息可能會(huì)被截取,口令可能會(huì)被檢索,然后未經(jīng)授權(quán)的人員可能會(huì)使用截取的口令登錄進(jìn)你的系統(tǒng)而對(duì)你的系統(tǒng)造成危害。你應(yīng)該盡可能地使用 OpenSSH 的工具集合來(lái)避免這些安全問(wèn)題。
          另一個(gè)使用 OpenSSH 的原因是,它自動(dòng)把 DISPLAY 變量轉(zhuǎn)發(fā)給客戶(hù)機(jī)器。換一句話說(shuō),如果你在本地機(jī)器上運(yùn)行 X 窗口系統(tǒng),并且使用 ssh 命令登錄到了遠(yuǎn)程機(jī)器上,當(dāng)你在遠(yuǎn)程機(jī)器上執(zhí)行一個(gè)需要 X 的程序時(shí),它會(huì)顯示在你的本地機(jī)器上。如果你偏愛(ài)圖形化系統(tǒng)管理工具,卻不能夠總是親身訪問(wèn)該服務(wù)器,這就會(huì)為你的工作大開(kāi)方便之門(mén)。

          2. 配置 OpenSSH 服務(wù)器
          要運(yùn)行 OpenSSH 服務(wù)器,你必須首先確定你安裝了正確的 RPM 軟件包。openssh-server 軟件包是必不可少的,并且它依賴(lài)于 openssh 軟件包的安裝與否。
          OpenSSH 守護(hù)進(jìn)程使用 /etc/ssh/sshd_config 配置文件。Red Hat 9 安裝的默認(rèn)配置文件在多數(shù)情況下應(yīng)該足以勝任。如果你想使用沒(méi)有被默認(rèn)的 sshd_config 文件提供的方式來(lái)配置守護(hù)進(jìn)程,請(qǐng)閱讀 sshd 的說(shuō)明書(shū)(man)頁(yè)來(lái)獲取能夠在配置文件中定義的關(guān)鍵字列表。
          要啟動(dòng) OpenSSH 服務(wù),使用 /sbin/service sshd start 命令。要停止 OpenSSH 服務(wù)器,使用 /sbin/service sshd stop 命令。如果你想讓守護(hù)進(jìn)程在引導(dǎo)時(shí)自動(dòng)啟動(dòng),請(qǐng)參閱相關(guān)資料來(lái)獲取關(guān)于如何管理服務(wù)的信息。
          如果你重新安裝了 Red Hat 系統(tǒng),任何在它被重裝前使用 OpenSSH 工具連接到這個(gè)系統(tǒng)上的客戶(hù)在它被重裝后將會(huì)看到下列消息:

          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
          @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
          IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
          Someone could be eavesdropping on you right now (man-in-the-middle attack)!
          It is also possible that the RSA host key has just been changed.

          重裝后的系統(tǒng)會(huì)為自己創(chuàng)建一組新的身份標(biāo)識(shí)鑰匙;因此客戶(hù)會(huì)看到 RSA 主機(jī)鑰匙改變的警告。如果你想保存系統(tǒng)原有的主機(jī)鑰匙,備份 /etc/ssh/ssh_host*key* 文件,然后在系統(tǒng)重裝后恢復(fù)它。該過(guò)程會(huì)保留系統(tǒng)的身份。當(dāng)客戶(hù)機(jī)在該系統(tǒng)重裝后試圖連接它,它們就不會(huì)看到以上的警告信息。(還有一種解決方法見(jiàn):http://chinaunix.net/forum/viewtopic.php?t=109562start=0)

          3. 配置 OpenSSH 客戶(hù)
          要從客戶(hù)機(jī)連接到 OpenSSH 服務(wù)器上,你必須在客戶(hù)機(jī)器上裝有 openssh-clients 和 openssh 軟件包。

          3.1. 使用 ssh 命令
          ssh 命令是 rlogin、rsh 和 telnet 命令的安全替換。它允許你在遠(yuǎn)程機(jī)器上登錄并在其上執(zhí)行命令。
          使用 ssh 來(lái)登錄到遠(yuǎn)程機(jī)器和使用 telnet 相似。要登錄到一個(gè)叫做 penguin.example.net 的遠(yuǎn)程機(jī)器,在 shell 提示下鍵入下面的命令:
          ssh penguin.example.net
          第一次使用 ssh 在遠(yuǎn)程機(jī)器上登錄時(shí),你會(huì)看到和下面相仿的消息:
          The authenticity of host 'penguin.example.net' can't be established.
          DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.
          Are you sure you want to continue connecting (yes/no)?
          鍵入 yes 來(lái)繼續(xù)。這會(huì)把該服務(wù)器添加到你的已知主機(jī)的列表中,如下面的消息所示:
          Warning: Permanently added 'penguin.example.net' (RSA) to the list of known hosts.
          下一步,你會(huì)看到向你詢(xún)問(wèn)遠(yuǎn)程主機(jī)口令的提示。在輸入口令后,你就會(huì)在遠(yuǎn)程主機(jī)的 shell 提示下了。如果你沒(méi)有指定用戶(hù)名,你在本地客戶(hù)機(jī)器上登錄用的用戶(hù)名就會(huì)被傳遞給遠(yuǎn)程機(jī)器。如果你想指定不同的用戶(hù)名,使用下面的命令:
          ssh username@penguin.example.net
          你還可以使用 ssh -l username penguin.example.net。
          ssh 命令可以用來(lái)在遠(yuǎn)程機(jī)器上不經(jīng) shell 提示登錄而執(zhí)行命令。它的語(yǔ)法格式是: ssh hostname command。譬如,如果你想在遠(yuǎn)程主機(jī) penguin.example.net 上執(zhí)行 ls /usr/share/doc 命令,在 shell 提示下鍵入下面的命令:
          ssh penguin.example.net ls /usr/share/doc
          在你輸入了正確的口令之后, /usr/share/doc 這個(gè)遠(yuǎn)程目錄中的內(nèi)容就會(huì)被顯示,然后你就會(huì)被返回到你的本地 shell 提示下。

          3.2. 使用 scp 命令
          scp 命令可以用來(lái)通過(guò)安全、加密的連接在機(jī)器間傳輸文件。它與 rcp 相似。
          把本地文件傳輸給遠(yuǎn)程系統(tǒng)的一般語(yǔ)法是:
          scp localfile username@tohostname:/newfilename
          localfile 指定源文件,username@tohostname:/newfilename 指定目標(biāo)文件。
          要把本地文件 shadowman 傳送到你在 penguin.example.net 上的賬號(hào)內(nèi),在 shell 提示下鍵入(把 username 替換成你的用戶(hù)名):
          scp shadowman username@penguin.example.net:/home/username
          這會(huì)把本地文件 shadowman 傳輸給 penguin.example.net 上的 /home/username/shadowman 文件。
          把遠(yuǎn)程文件傳輸給本地系統(tǒng)的一般語(yǔ)法是:
          scp username@tohostname:/remotefile /newlocalfile
          remotefile 指定源文件,newlocalfile 指定目標(biāo)文件。
          源文件可以由多個(gè)文件組成。譬如,要把目錄 /downloads 的內(nèi)容傳輸?shù)竭h(yuǎn)程機(jī)器 penguin.example.net 上現(xiàn)存的 uploads 目錄,在 shell 提示下鍵入下列命令:
          scp /downloads/* username@penguin.example.net:/uploads/

          3.3. 使用 sftp 命令
          sftp 工具可以用來(lái)打開(kāi)一次安全互動(dòng)的 FTP 會(huì)話。它與 ftp 相似, 只不過(guò),它使用安全、加密的連接。它的一般語(yǔ)法是:sftp username@hostname.com。一旦通過(guò) 驗(yàn)證,你可以使用一組和使用 FTP 相似的命令。請(qǐng)參閱 sftp 的說(shuō)明書(shū)頁(yè)(man)來(lái)獲取這些 命令的列表。要閱讀說(shuō)明書(shū)頁(yè),在 shell 提示下執(zhí)行 man sftp 命令。sftp 工具只在 OpenSSH 版本 2.5.0p1 以上才有。

          3.4. 生成鑰匙對(duì)
          如果你不想每次使用 ssh、scp 或 sftp 時(shí)都要輸入口令來(lái)連接遠(yuǎn)程機(jī)器,你可以生成一對(duì)授權(quán)鑰匙。
          鑰匙必須為每個(gè)用戶(hù)生成。要為某用戶(hù)生成鑰匙,用想連接到遠(yuǎn)程機(jī)器的用戶(hù)身份來(lái)遵循下面的步驟。如果你用根用戶(hù)的身份完成了下列步驟,就只有根用戶(hù)才能使用這對(duì)鑰匙。
          從 OpenSSH 版本 3.0 開(kāi)始,~/.ssh/authorized_keys2、~/.ssh/known_hosts2 和 /etc/ssh_known_hosts2 就會(huì)過(guò)時(shí)。SSH 協(xié)議 1 和 2 共享 ~/.ssh/authorized_keys、~/.ssh/known_hosts 和 /etc/ssh/ssh_known_hosts 文件。
          Red Hat 9 默認(rèn)使用 SSH 協(xié)議 2 和 RSA 鑰匙。
          竅門(mén)
          如果你重裝了 Red Hat Linux,但是想保留現(xiàn)有的鑰匙對(duì),備份你的主目錄中的 .ssh 目錄。重裝后,把該目錄復(fù)制回主目錄。該進(jìn)程可為系統(tǒng)上的所有用戶(hù)進(jìn)行,包括根用戶(hù)。

          3.4.1. 為版本 2 生成 RSA 鑰匙對(duì)
          使用下列步驟來(lái)為 SSH 協(xié)議的版本 2 生成 RSA 鑰匙對(duì)。從 OpenSSH 2.9 開(kāi)始,它已成為默認(rèn)設(shè)置。
          1. 要生成 RSA 鑰匙對(duì)與協(xié)議的版本 2 合作,在 shell 提示下鍵入下列命令:
          ssh-keygen -t rsa
          接受 ~/.ssh/id_rsa 的默認(rèn)位置。輸入一個(gè)與你的帳號(hào)口令不同的口令句,再輸入一次來(lái)確認(rèn)。
          公鑰被寫(xiě)入 ~/.ssh/id_rsa.pub。密鑰被寫(xiě)入 ~/.ssh/id_rsa。決不能把密鑰出示給任何人。
          2. 使用 chmod 755 ~/.ssh 命令改變你的 .ssh 目錄的許可權(quán)限。
          3. 把 ~/.ssh/id_rsa.pub 的內(nèi)容復(fù)制到你想連接的機(jī)器上的 ~/.ssh/authorized_keys 文件中。如果 ~/.ssh/authorized_keys 不存在,你可以把 ~/.ssh/id_rsa.pub 文件復(fù)制到那個(gè)機(jī)器上的 ~/.ssh/authorized_keys 文件中。
          4. 如果你運(yùn)行的是 GNOME,跳到第 3.4.4 節(jié)。如果你沒(méi)在運(yùn)行 X 窗口系統(tǒng),跳到第 3.4.5 節(jié)。

          3.4.2. 為版本 2 生成 DSA 鑰匙對(duì)
          使用下面的步驟來(lái)為 SSH 協(xié)議的版本 2 生成 DSA 鑰匙對(duì)。
          1. 要生成用于協(xié)議的版本 2 的 DSA 鑰匙對(duì),在 shell 提示下鍵入下面的命令:
          ssh-keygen -t dsa
          接受 ~/.ssh/id_dsa 的默認(rèn)位置。輸入一個(gè)與你的帳號(hào)口令不同的口令句,再輸入一次來(lái)確認(rèn)。
          竅門(mén)
          口令句是用來(lái)驗(yàn)證用戶(hù)的一串詞匯和字符。 口令句和一般口令的不同之處在于:在口令句中你可以使用空格或制表符??诹罹渫ǔ1纫话憧诹铋L(zhǎng),因?yàn)樗鼈兺ǔJ褂枚陶Z(yǔ)而不僅僅用一個(gè)詞。
          公鑰被寫(xiě)入 ~/.ssh/id_dsa.pub。密鑰被寫(xiě)入 ~/.ssh/id_dsa。決不能把密鑰出示給任何人,這一點(diǎn)很重要。
          2. 使用 chmod 755 ~/.ssh 命令改變你的 .ssh 目錄的許可權(quán)限。
          3. 把 ~/.ssh/id_dsa.pub 的內(nèi)容復(fù)制到你想連接的機(jī)器中的 ~/.ssh/authorized_keys 文件中。如果文件 ~/.ssh/authorized_keys 不存在,你可以把 ~/.ssh/id_dsa.pub 文件復(fù)制到那個(gè)機(jī)器上的 ~/.ssh/authorized_keys文件中。
          4. 如果你運(yùn)行的是 GNOME,跳到第 3.4.4 節(jié)。如果你沒(méi)在運(yùn)行 X 窗口系統(tǒng),跳到 第 3.4.5 節(jié)。

          3.4.3. 為版本 1.3 和 1.5 生成 DSA 鑰匙對(duì)
          使用下面的步驟來(lái)生成用于 SSH 協(xié)議版本 1 的 RSA 鑰匙對(duì)。如果你只在使用 DSA 的系統(tǒng)間連接,則不需要 RSA 版本 1.3 或 RSA 版本 1.5 鑰匙對(duì)。
          1. 要生成 RSA (版本 1.3 和 1.5 協(xié)議)鑰匙對(duì),在 shell 提示下鍵入下列命令:
          ssh-keygen -t rsa1
          接受默認(rèn)的位置 (~/.ssh/identity)。輸入和你的帳號(hào)口令不同的口令句。再輸入一次來(lái)確認(rèn)。
          公鑰被寫(xiě)入 ~/.ssh/identity.pub。密鑰被寫(xiě)入 ~/.ssh/identity。不要把你的密鑰出示給任何人。
          2. 使用 chmod 755 ~/.ssh 和 chmod 644 ~/.ssh/identity.pub 命令改變你的 .ssh 目錄和密鑰的許可權(quán)限。
          3. 把 ~/.ssh/identity.pub 的內(nèi)容復(fù)制到你想連接的機(jī)器中的 ~/.ssh/authorized_keys 文件中。如果文件 ~/.ssh/authorized_keys 不存在,你可以把 ~/.ssh/identity.pub 文件復(fù)制到遠(yuǎn)程機(jī)器上的 ~/.ssh/authorized_keys 文件中。
          4. 如果你運(yùn)行的是 GNOME,跳到第 3.4.4 節(jié)。如果你沒(méi)在運(yùn)行 GNOME, 跳到第 3.4.5 節(jié)。

          3.4.4. 在 GNOME 中配置 ssh-agent
          ssh-agent 工具可以用來(lái)保存你的口令句,因此你不必在每次引發(fā) ssh 或 scp 連接時(shí)都輸入口令。如果你在使用 GNOME,openssh-askpass-gnome 工具可以用來(lái)在你登錄到 GNOME 時(shí)提示你輸入口令句,并把它一直保留到你從 GNOME 中注銷(xiāo)之時(shí)。你不必為本次 GNOME 會(huì)話中任何 ssh 或 scp 連接輸入口令或口令句。如果你不打算使用 GNOME,請(qǐng)參閱第 3.4.5 節(jié)。
          要在 GNOME 會(huì)話中保存口令句,遵循下列步驟:
          1. 你需要安裝 openssh-askpass-gnome 軟件包;你可以使用 rpm -q openssh-askpass-gnome 命令來(lái)判定該軟件包是否已被安裝。如果它沒(méi)有被安裝,從你的 Red Hat Linux 光盤(pán)集合、Red Hat FTP 鏡像站點(diǎn)、或使用 Red Hat 網(wǎng)絡(luò) 來(lái)安裝它。
          2. 點(diǎn)擊「主菜單」(在面板上)=>; 「首選項(xiàng)」 =>; 「更多首選項(xiàng)」 =>; 「會(huì)話」。然后點(diǎn)擊「啟動(dòng)程序」標(biāo)簽。點(diǎn)擊「增加」,在「啟動(dòng)命令」文本字段內(nèi)輸入 /usr/bin/ssh-add。把它的優(yōu)先級(jí)設(shè)為比任何現(xiàn)存命令都高的數(shù)字以確保它最后才執(zhí)行。ssh-add 的優(yōu)先級(jí)數(shù)字最好是 70 或更高。優(yōu)先級(jí)數(shù)字越高,優(yōu)先級(jí)越低。如果你列出了其它程序,該程序的優(yōu)先級(jí)應(yīng)該最低。點(diǎn)擊「關(guān)閉」來(lái)退出該程序。
          3. 注銷(xiāo)后再登錄進(jìn) GNOME;換一句話說(shuō),重新啟動(dòng) X 服務(wù)器。在 GNOME 啟動(dòng)后,一個(gè)提示你輸入口令句的對(duì)話框就會(huì)出現(xiàn)。輸入要求的口令句。如果你把 DSA 和 RSA 兩者都配置了,你會(huì)被提示兩者都輸入。從現(xiàn)在起,你就不會(huì)被 ssh、 scp 或 sftp 提示輸入口令了。

          3.4.5. 配置 ssh-agent
          ssh-agent 可以用來(lái)儲(chǔ)存你的口令句,因此你在每次使用 ssh 或 scp 連接時(shí)就不必總是輸入它。如果你不在運(yùn)行 X 窗口系統(tǒng),則在 shell 提示中遵循這些步驟。如果你在運(yùn)行 GNOME,但是不想配置它來(lái)在你登錄時(shí)提示你輸入口令(參閱第 3.4.4 節(jié)),這個(gè)過(guò)程可以在類(lèi)似 xterm 的終端窗口中進(jìn)行。如果你在運(yùn)行 X 卻不是 GNOME,這個(gè)過(guò)程可以在終端中進(jìn)行??墒牵愕目诹钪荒茉谠摻K端窗口中被記住,它不是全局設(shè)置。
          1. 在 shell 提示下,鍵入下面的命令:
          exec /usr/bin/ssh-agent $SHELL
          2. 然后,鍵入下面的命令:
          ssh-add
          接著,輸入你的口令。如果你配置了不止一個(gè)鑰匙對(duì),你會(huì)被提示輸入每個(gè)口令。
          3. 當(dāng)你注銷(xiāo)后,口令句就會(huì)被忘記。你必須在每次登錄到虛擬控制臺(tái)或打開(kāi)終端窗口時(shí)都執(zhí)行這兩條命令。

          4. 其它資料
          OpenSSH 和 OpenSSL 工程處于不斷地開(kāi)發(fā)中,因此關(guān)于它們的最新信息通常位于它們的官方網(wǎng)站中。OpenSSH 和 OpenSSL 工具的說(shuō)明書(shū)(man)頁(yè)也是個(gè)獲取詳細(xì)信息的好地方。

          4.1. 安裝了的文檔
          * ssh、scp、sftp、sshd 和 ssh-keygen 的說(shuō)明書(shū)(man)頁(yè) — 關(guān)于它們的說(shuō)明書(shū)頁(yè)包括如何使用這些命令的信息,以及所有能與它們一起使用的參數(shù)。

          4.2. 有用的網(wǎng)站
          * http://www.openssh.com — OpenSSH FAQ 網(wǎng)頁(yè)、錯(cuò)誤報(bào)告、郵件列表、工程宗旨、以及關(guān)于安全功能的更技術(shù)性的解釋。
          * http://www.openssl.org — OpenSSL FAQ 網(wǎng)頁(yè)、郵件列表、以及對(duì)于工程宗旨的描述。
          * http://www.freessh.org — 用于其它平臺(tái)的 SSH 客戶(hù)軟件。

          linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


          關(guān)鍵詞: OpenSSH Linux

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();