使用Unix密鑰啟用自動(dòng)登錄
今天,我們來(lái)繼續(xù)學(xué)習(xí)Unix密鑰的知識(shí)。當(dāng)您使用 ssh、sftp 或 scp 登錄到遠(yuǎn)程系統(tǒng)后,您仍需要使用密碼才能完成登錄過(guò)程。通過(guò)創(chuàng)建公鑰或私鑰,將密鑰的公共部分附加到~/.ssh/authorized_keys 文件,并與遠(yuǎn)程站點(diǎn)交換了有效Unix密鑰后,您可以省去提供密碼的要求并允許自動(dòng)登錄。
要?jiǎng)?chuàng)建公鑰或私鑰,您需要使用 ssh-keygen 來(lái)指定Unix密鑰加密的類型。在演示中使用了 rsa 密鑰類型,但是其他密鑰類型也有效。要?jiǎng)?chuàng)建密鑰,請(qǐng)參見清單 11。
清單 11. 創(chuàng)建Unix密鑰
- $ ssh-keygen -t rsa
- Generating public/private rsa key pair.
- Enter file in which to save the key (/root/.ssh/id_rsa):
您應(yīng)輸入保存Unix密鑰(公共和私有組件)的文件的位置。使用缺省值(在主目錄中的 .ssh 目錄中)一般就可以了(請(qǐng)參見清單 12)。
清單 12. 提示輸入密碼
- Created directory '/root/.ssh'.
- Enter passphrase (empty for no passphrase):
如果您在此階段輸入了密碼,則會(huì)創(chuàng)建安全密鑰文件,但是在每次使用Unix密鑰時(shí),還必須輸入密碼。按 Return 意味著不需要任何密碼(請(qǐng)參見清單13)。
清單 13. 通過(guò)按 Return 鍵跳過(guò)密碼需求
- Enter same passphrase again:
- Your identification has been saved in /root/.ssh/id_rsa.
- Your public key has been saved in /root/.ssh/id_rsa.pub.
- The key fingerprint is:
- 98:da:8d:48:a8:09:44:b1:b3:62:51:2d:a9:6b:61:ba root@remotehost
現(xiàn)在已創(chuàng)建了公鑰 (id_rsa.pub) 和對(duì)應(yīng)的私鑰 (id_rsa)。
要啟用自動(dòng)登錄,您必須將公鑰的內(nèi)容復(fù)制到遠(yuǎn)程主機(jī)上 ~/.ssh 目錄中的 authorized_keys 文件中。您可以使用 SSH 自動(dòng)完成此操作(請(qǐng)參見清單 14)。
清單 14. 啟用自動(dòng)登錄
$ cat ./.ssh/id_rsa.pub | ssh mc@remotehost 'cat >> .ssh/authorized_keys';
還有,如果在多個(gè)主機(jī)中經(jīng)常執(zhí)行此操作,則可以使用小腳本或 Shell 函數(shù)來(lái)執(zhí)行所有必需步驟,如清單 15 所示。
清單 15. 使用 Shell 腳本啟用自動(dòng)登錄
- OLDDIR='pwd';
- if [ -z "$1" ]; then
- echo Need user@host info;
- exit;
- fi;
- cd $HOME;
- if [ -e "./.ssh/id_rsa.pub" ]; then
- cat ./.ssh/id_rsa.pub | ssh $1 'cat >> .ssh/authorized_keys';
- else
- ssh-keygen -t rsa;
- cat ./.ssh/id_rsa.pub | ssh $1 'cat >> .ssh/authorized_keys';
- fi;
- cd $OLDDIR
您可以使用 setremotekey 腳本復(fù)制現(xiàn)有Unix密鑰,如果密鑰不存在,可在復(fù)制之前創(chuàng)建一個(gè): $ setremotekey mc@remotehost
現(xiàn)在,每當(dāng)需要使用公鑰登錄到遠(yuǎn)程主機(jī)時(shí),您可以結(jié)合使用個(gè)人Unix密鑰腳本和遠(yuǎn)程主機(jī)上該用戶接受的密鑰列表。
OpenSSH 是一個(gè)重要工具,它可以保護(hù)計(jì)算機(jī)之間的通信和信息傳輸?shù)陌踩?。它不僅是常規(guī)工具(如 Telnet、FTP 和 RCP)的安全替代方法,而且還可以充當(dāng)其他服務(wù)(如 Subversion、X Windows System 和 rsync)的傳輸協(xié)議。
本文向您介紹了啟動(dòng)和運(yùn)行 OpenSSH 所需的基本步驟,如何最有效地使用 OpenSSH 提供的主要工具,以及如何使用Unix密鑰交換工具來(lái)簡(jiǎn)化登錄和連接性問(wèn)題。
【編輯推薦】