您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何使用ssh公鑰密鑰自動(dòng)登陸linux服務(wù)器”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
操作系統(tǒng):Red Hat Enterprise Linux AS release 4 (Nahant Update 8) 軟件版本:OpenSSH_3.9p1, OpenSSL 0.9.7a 管理服務(wù)器:ip:192.168.0.1 機(jī)器名:server 被管理服務(wù)器:ip:192.168.0.2 機(jī)器名:client
首先,如果你沒有安裝OpenSSH,請先安裝,我們現(xiàn)在的 linux 服務(wù)器默認(rèn)都安裝 openssh 的軟件。 生成公鑰密鑰對是在管理服務(wù)器上生成的:
[root@server ~]# ssh-keygen -b 1024 -t rsaGenerating public/private rsa key pair.#提示正在生成rsa密鑰對Enter file in which to save the key (/home/usrname/.ssh/id_dsa):#詢問公鑰和私鑰存放位置,默認(rèn)位置回車即可Enter passphrase (empty for no passphrase):#詢問輸入私鑰密語,輸入密語Enter same passphrase again:#再次提示輸入密語確認(rèn)Your identification has been saved in /home/usrname/.ssh/id_dsa.#提示公鑰和私鑰已經(jīng)存放在/root/.ssh/目錄下Your public key has been saved in /home/usrname/.ssh/id_dsa.pub. The key fingerprint is: x6:68:xx:93:98:8x:87:95:7x:2x:4x:x9:81:xx:56:94 root@server#提示key的指紋
簡單說明一下: -b 1024采用長度為1024字節(jié)的公鑰/私鑰對,最長4096字節(jié),一般1024或2048就足夠滿足安全需要了,太長的話加密解密需要的時(shí)間也增長。 -t rsa 采用rsa加密方式的公鑰/私鑰對,除了rsa還有dsa方式,rsa方式最短不能小于768字節(jié)長度。 如果還需要使用更多其他參數(shù)請參考man ssh-keygen。
在生成密鑰對的過程中你被詢問:輸入密碼短句 Enter passphrase (empty for no passphrase) ,密碼短句(passphrase)是你使用一個(gè)短語或者一句話作為密碼輸入,再由系統(tǒng)內(nèi)部的加密或是散列算法生成虛擬密碼后,進(jìn)行下一步的認(rèn)證。好處是增強(qiáng)了安全性不易被破解??催^很多文章,里面都把這個(gè)短句輸入為空,也就是代表不使用密碼短句。在這里我強(qiáng)烈要求你輸入密碼短句。有人會(huì)說使用密碼短句后,登陸還要輸入密碼短句這樣使用沒有比使用用戶名和密碼登陸方便多少,我說請你不要急,接著看我的文章。 注意:如果你生成密鑰對而不設(shè)置密碼短語,那么如果你的私鑰丟失了,那么就你的麻煩可能會(huì)比丟失用戶名密碼還嚴(yán)重。
在你的管理服務(wù)器上把你的公鑰拷貝到被管理服務(wù)器上要進(jìn)行自動(dòng)登陸的用戶目錄下。
[root@server ~]# scp .ssh/id_dsa.pub remote_usrname@192.168.0.2:#比如你想使用用戶peter登陸,則remote_usrname請以peter代替
改名和進(jìn)行權(quán)限設(shè)置
登陸被管理的服務(wù)器,進(jìn)入需要遠(yuǎn)程登陸的用戶目錄,把公鑰放到用戶目錄的 .ssh 這個(gè)目錄下(如果目錄不存在,需要?jiǎng)?chuàng)建~/.ssh目錄,并把目錄權(quán)限設(shè)置為700),把公鑰改名為authorized_keys2,并且把它的用戶權(quán)限設(shè)成600。
[peter@client ~]$ ls id_rsa.pub [peter@client ~]$ mkdir ~/.ssh#如果當(dāng)前用戶目錄下沒有 .ssh 目錄,請先創(chuàng)建目錄[peter@client ~]$ chmod 700 ~/.ssh [peter@client ~]$ mv id_rsa.pub ~/.ssh [peter@client ~]$ cd ~/.ssh [peter@client ~]$ cat id_rsa.pub >> authorized_keys2 [peter@client ~]$ rm -f id_rsa.pub [peter@client ~]$ chmod 600 authorized_keys2 [peter@client ~]$ ls -l total 4 -rw------- 1 peter peter 225 Oct 10 11:28 authorized_keys2
測試使用密鑰對進(jìn)行遠(yuǎn)程登陸
[root@server ~]# ssh peter@192.168.0.2Enter passphrase for key '/root/.ssh/id_rsa': #提示輸入密碼短語,請輸入剛才設(shè)置的密碼短語Last login: Sun Oct 10 11:32:14 2010 from 192.168.0.1 [peter@client ~]$
如果你不能用正確的登錄,應(yīng)該重新檢查一下你的authorized_keys2的權(quán)限。
使用 ssh-agent(ssh代理)自動(dòng)輸入密碼短語
牢記你的“密碼短句”,現(xiàn)在你可以用你的密鑰而不是密碼來登錄你的服務(wù)器了,但是這樣仍然沒有省什么事,你還是要輸入密鑰的“密碼短語”。有更簡便的方法嗎?答案就是采用SSH代理(ssh-agent),一個(gè)用來幫你記住“密碼短語”的程序。 ssh-agent是OpenSSH中默認(rèn)包括的ssh代理程序。
登陸管理服務(wù)器
[root@server ~]# ssh-agentSSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147; export SSH_AUTH_SOCK; SSH_AGENT_PID=2148; export SSH_AGENT_PID;echo Agent pid 2148;
當(dāng)你運(yùn)行ssh-agent,它會(huì)打印出來它使用的 ssh 的環(huán)境和變量。要使用這些變量,有兩種方法,一種是手動(dòng)進(jìn)行聲明環(huán)境變量,另一種是運(yùn)行eval命令自動(dòng)聲明環(huán)境變量。
方法一:手動(dòng)聲明環(huán)境變量
[root@server ~]# SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147; export SSH_AUTH_SOCK;[root@server ~]# SSH_AGENT_PID=2148; export SSH_AGENT_PID;[root@server ~]# printenv | grep SSH#檢查 ssh 環(huán)境變量是否已經(jīng)加入當(dāng)前會(huì)話的環(huán)境變量SSH_AGENT_PID=2148 SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147
方法二:運(yùn)行eval命令自動(dòng)聲明環(huán)境變量
[root@server ~]# eval `ssh-agent`Agent pid 2157 [root@server ~]# printenv | grep SSH#檢查 ssh 環(huán)境變量是否已經(jīng)加入當(dāng)前會(huì)話的環(huán)境變量SSH_AGENT_PID=2148 SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147
現(xiàn)在 ssh-agent 已經(jīng)在運(yùn)行了,但是 ssh-agent 里面是空白的不會(huì)有解密的專用密鑰。我們要告訴它我們有私鑰和這個(gè)私鑰在哪兒。這就需要使用 ssh-add 命令把我們的專用密鑰添加到 ssh-agent 的高速緩存中。
[root@server ~]# ssh-add ~/.ssh/id_dsaEnter passphrase for /home/user/.ssh/id_dsa:#輸入你的密碼短語Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) [root@server ~]# ssh-add -l#查看 ssh代理的緩存內(nèi)容1024 72:78:5e:6b:16:fd:f2:8c:81:b1:18:e6:9f:77:6e:be /root/.ssh/id_rsa (RSA)
輸入了密碼短句,現(xiàn)在好了,你可以登錄你的遠(yuǎn)程服務(wù)器而不用輸入你的密碼短語了,而且你的私鑰是密碼保護(hù)的。
[root@server ~]# ssh peter@192.168.0.2Last login: Sun Oct 10 11:32:45 2010 from 192.168.0.1 [peter@client ~]$
登陸服務(wù)器進(jìn)行操作結(jié)束后,記得還要把 ssh-agent 關(guān)掉,不然其他人登陸后也可以遠(yuǎn)程了。
[root@server ~]# ssh-agent -kunset SSH_AUTH_SOCK;unset SSH_AGENT_PID;echo Agent pid 2148 killed; [root@server ~]# ssh-add -l#查看一下,緩存里已經(jīng)沒有了密鑰了The agent has no identities.
當(dāng)然了如果管理數(shù)量眾多的服務(wù)器(服務(wù)器數(shù)量≥2位數(shù)),第一次上傳公鑰可能會(huì)是比較累的工作,但是以后就可以在維護(hù)工作中體會(huì)這種公鑰密鑰自動(dòng)登陸的便利了。
“如何使用ssh公鑰密鑰自動(dòng)登陸linux服務(wù)器”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。