Linux :從 openSSH 到 SSH2 的基于 SSH 密鑰的身份驗(yàn)證設(shè)置
之前的文章(openSSH 到 openSSH 的設(shè)置,SSH2 到 SSH2 的設(shè)置)解釋了如何在相同版本的 ssh 上設(shè)置基于密鑰的身份驗(yàn)證來(lái)執(zhí)行 ssh 和 scp,而無(wú)需輸入密碼。本文介紹了如何在不同版本的 SSH(從 openSSH 到 SSH2)之間設(shè)置基于 SSH 密鑰的身份驗(yàn)證,以在不輸入密碼的情況下執(zhí)行 ssh 和 scp。

1. 驗(yàn)證本地主機(jī)和遠(yuǎn)程主機(jī)的 SSH 版本。
在這個(gè)例子中,local-host 在 openSSH 上運(yùn)行,而 remote-host 在 SSH2 上運(yùn)行。
[local-host]$ ssh -V OpenSSH_5.0p1, OpenSSL 0.9.8g 19 Oct 2007 [remote-host]$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu [remote-host]$ ls -l /usr/local/bin/ssh lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2
2. 使用 ssh-keygen 在本地主機(jī)上生成密鑰對(duì)
[local-host]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/tiamo/.ssh/id_rsa):
公鑰和私鑰通常存儲(chǔ)在您的主目錄下的 .ssh 文件夾中。在此示例中,它位于 /home/jsmith/.sshd 下。您不應(yīng)該與任何人共享私鑰。
默認(rèn)情況下,openSSH 上的 ssh-keygen 生成 RSA 密鑰對(duì)。您還可以使用以下命令生成 DSA 密鑰對(duì):ssh-keygen -t dsa命令。
3. 將 openSSH 公鑰轉(zhuǎn)換為 SSH2 公鑰。
在運(yùn)行 openSSH 的本地主機(jī)上,使用 ssh-keygen 將 openSSH 公鑰轉(zhuǎn)換為 SSH2 公鑰,如下所示。
[local-host]$ ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_ssh2.pub
4. 在運(yùn)行 SSH2 的遠(yuǎn)程主機(jī)上安裝公鑰。
在遠(yuǎn)程主機(jī)上創(chuàng)建一個(gè)新的公鑰文件,并從本地主機(jī)復(fù)制粘貼轉(zhuǎn)換后的 SSH2 密鑰。
[remote-host]$ vi ~/.ssh2/local-host_ssh2_key.pub ---- BEGIN SSH2 PUBLIC KEY ---- Comment: "2048-bit RSA, converted from OpenSSH by jsmith@local-host" DDDDB3NzaC1yc2EAAAABDmbrdomPh9rWfjZ1+7Q369zsBEa7wS1RxzWRQ0Bmr9FSplI 3ADBEBC/6cbdf/v0r6Cp5y5kusP07AOzo2F7MBDSZBtS/MbYJiIxvocoaxG2bQyz3yYjU YcpzGMD182bnA8kRxmGg+R5pVXM34lx3iSSgd8r3RzZKnDpEvEInnI7pQvUBoEbYCXPUeZ LQvQAkz6+Pb6SsNp-dop/qgv9qyfbyMz1iKUZGadG146GtanL5QtRwyAeD187gMzzrGzMFP LWjdzWpGILdZ5gq7wwRpbcXFUskVrS2ZjDe676XlTN1k5QSZmSYUuttDdrjB5SFiMpsre8 a7cQuMS178i9eDBEC== ---- END SSH2 PUBLIC KEY ----
將上述公鑰文件名添加到遠(yuǎn)程主機(jī)上的授權(quán)文件中,如下所示。
[remote-host]$ vi ~/.ssh2/authorization Key local-host_ssh2_key.pub
5. 使用 SSH2 密鑰身份驗(yàn)證驗(yàn)證從本地主機(jī)到遠(yuǎn)程主機(jī)的登錄。
[local-host]$ ssh -l tiamo remote-host
有兩種方法可以在不輸入密碼的情況下執(zhí)行 ssh 和 scp:
沒(méi)有密碼。創(chuàng)建密鑰對(duì)時(shí),請(qǐng)將密碼留空。將此選項(xiàng)用于自動(dòng)批處理。例如,如果您正在運(yùn)行 cron 作業(yè)以在機(jī)器之間復(fù)制文件,這是合適的選項(xiàng)。您可以跳過(guò)此方法的后續(xù)步驟。
使用密碼和 SSH 代理。如果您在命令行中以交互方式使用 ssh 和 scp 并且不想在每次執(zhí)行 ssh 或 scp 時(shí)都使用密碼,我不建議使用前一個(gè)選項(xiàng)(無(wú)密碼),因?yàn)槟呀?jīng)消除了一個(gè)級(jí)別基于 ssh 密鑰的身份驗(yàn)證中的安全性。相反,在創(chuàng)建密鑰對(duì)時(shí)使用密碼短語(yǔ)并使用 SSH 代理執(zhí)行 ssh 和 scp,而無(wú)需每次都輸入密碼,如下面的步驟所述。
6. 在本地主機(jī)上啟動(dòng) SSH 代理
SSH 代理將在后臺(tái)運(yùn)行以保存私鑰并執(zhí)行 ssh 和 scp,而無(wú)需多次輸入密碼。
[local-host]$ ssh-agent $SHELL
7. 將私鑰加載到本地主機(jī)上的 SSH 代理。
[local-host]$ ssh-add Enter passphrase for /home/tiamo/.ssh/id_rsa:
8. 在不輸入密碼的情況下,從本地主機(jī)執(zhí)行 SSH 或 SCP 到 remote-home。
[local-host]$
linux ssh
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。