中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用ssh公鑰密鑰登陸linux

發布時間:2022-02-19 09:24:34 來源:億速云 閱讀:397 作者:小新 欄目:開發技術

這篇文章主要介紹如何使用ssh公鑰密鑰登陸linux,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在我們平時使用Linux系統時候,通常使用的Linux SSH登錄方式是用戶名加密碼的登錄方式,今天來探討另外的一種相對安全的登錄方式--密鑰登錄。我們知道SSH登錄是用的RSA非對稱加密的,所以我們在SSH登錄的時候就可以使用RSA密鑰登錄,SSH有專門創建SSH密鑰的工具ssh-keygen。

如何使用ssh公鑰密鑰登陸linux

第一步:生成 ssh 公鑰密鑰對

首先,如果你沒有安裝OpenSSH,請先安裝,我們現在的 linux 服務器默認都安裝 openssh 的軟件。 生成公鑰密鑰對是在管理服務器上生成的:

[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):#詢問公鑰和私鑰存放位置,默認位置回車即可Enter passphrase (empty for no passphrase):#詢問輸入私鑰密語,輸入密語Enter same passphrase again:#再次提示輸入密語確認Your identification has been saved in /home/usrname/.ssh/id_dsa.#提示公鑰和私鑰已經存放在/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字節的公鑰/私鑰對,最長4096字節,一般1024或2048就足夠滿足安全需要了,太長的話加密解密需要的時間也增長。 -t rsa  采用rsa加密方式的公鑰/私鑰對,除了rsa還有dsa方式,rsa方式最短不能小于768字節長度。 如果還需要使用更多其他參數請參考man ssh-keygen。

在生成密鑰對的過程中你被詢問:輸入密碼短句 Enter passphrase (empty for no passphrase) ,密碼短句(passphrase)是你使用一個短語或者一句話作為密碼輸入,再由系統內部的加密或是散列算法生成虛擬密碼后,進行下一步的認證。好處是增強了安全性不易被破解。看過很多文章,里面都把這個短句輸入為空,也就是代表不使用密碼短句。在這里我強烈要求你輸入密碼短句。有人會說使用密碼短句后,登陸還要輸入密碼短句這樣使用沒有比使用用戶名和密碼登陸方便多少,我說請你不要急,接著看我的文章。 注意:如果你生成密鑰對而不設置密碼短語,那么如果你的私鑰丟失了,那么就你的麻煩可能會比丟失用戶名密碼還嚴重。

第二步:拷貝你的公鑰到被管理的服務器上

在你的管理服務器上把你的公鑰拷貝到被管理服務器上要進行自動登陸的用戶目錄下。

[root@server ~]# scp .ssh/id_dsa.pub remote_usrname@192.168.0.2:#比如你想使用用戶peter登陸,則remote_usrname請以peter代替

改名和進行權限設置

登陸被管理的服務器,進入需要遠程登陸的用戶目錄,把公鑰放到用戶目錄的 .ssh 這個目錄下(如果目錄不存在,需要創建~/.ssh目錄,并把目錄權限設置為700),把公鑰改名為authorized_keys2,并且把它的用戶權限設成600。

[peter@client ~]$ ls
id_rsa.pub
[peter@client ~]$ mkdir ~/.ssh#如果當前用戶目錄下沒有 .ssh 目錄,請先創建目錄[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

測試使用密鑰對進行遠程登陸

[root@server ~]# ssh peter@192.168.0.2Enter passphrase for key '/root/.ssh/id_rsa': #提示輸入密碼短語,請輸入剛才設置的密碼短語Last login: Sun Oct 10 11:32:14 2010 from 192.168.0.1
[peter@client ~]$

如果你不能用正確的登錄,應該重新檢查一下你的authorized_keys2的權限。

使用 ssh-agent(ssh代理)自動輸入密碼短語

牢記你的“密碼短句”,現在你可以用你的密鑰而不是密碼來登錄你的服務器了,但是這樣仍然沒有省什么事,你還是要輸入密鑰的“密碼短語”。有更簡便的方法嗎?答案就是采用SSH代理(ssh-agent),一個用來幫你記住“密碼短語”的程序。 ssh-agent是OpenSSH中默認包括的ssh代理程序。

登陸管理服務器

[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;

當你運行ssh-agent,它會打印出來它使用的 ssh 的環境和變量。要使用這些變量,有兩種方法,一種是手動進行聲明環境變量,另一種是運行eval命令自動聲明環境變量。

方法一:手動聲明環境變量

[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 環境變量是否已經加入當前會話的環境變量SSH_AGENT_PID=2148
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147

方法二:運行eval命令自動聲明環境變量

[root@server ~]# eval `ssh-agent`Agent pid 2157
[root@server ~]# printenv | grep SSH#檢查 ssh 環境變量是否已經加入當前會話的環境變量SSH_AGENT_PID=2148
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147

現在 ssh-agent 已經在運行了,但是 ssh-agent 里面是空白的不會有解密的專用密鑰。我們要告訴它我們有私鑰和這個私鑰在哪兒。這就需要使用 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代理的緩存內容1024 72:78:5e:6b:16:fd:f2:8c:81:b1:18:e6:9f:77:6e:be /root/.ssh/id_rsa (RSA)

輸入了密碼短句,現在好了,你可以登錄你的遠程服務器而不用輸入你的密碼短語了,而且你的私鑰是密碼保護的。

[root@server ~]# ssh peter@192.168.0.2Last login: Sun Oct 10 11:32:45 2010 from 192.168.0.1
[peter@client ~]$

登陸服務器進行操作結束后,記得還要把 ssh-agent 關掉,不然其他人登陸后也可以遠程了。

[root@server ~]# ssh-agent -kunset SSH_AUTH_SOCK;unset SSH_AGENT_PID;echo Agent pid 2148 killed;
[root@server ~]# ssh-add -l#查看一下,緩存里已經沒有了密鑰了The agent has no identities.

當然了如果管理數量眾多的服務器(服務器數量≥2位數),第一次上傳公鑰可能會是比較累的工作,但是以后就可以在維護工作中體會這種公鑰密鑰自動登陸的便利了。

以上是“如何使用ssh公鑰密鑰登陸linux”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正安县| 和平区| 双牌县| 长子县| 张家港市| 常德市| 固原市| 溆浦县| 郁南县| 平顺县| 浏阳市| 奇台县| 耒阳市| 阆中市| 新乐市| 新沂市| 康定县| 义乌市| 洞头县| 安岳县| 大埔县| 筠连县| 临高县| 奎屯市| 东明县| 南雄市| 象山县| 手机| 曲松县| 开平市| 政和县| 龙井市| 娱乐| 望谟县| 奉化市| 武乡县| 子长县| 开鲁县| 灵川县| 海淀区| 锡林浩特市|