新聞中心
RSA加密算法是一種非對稱加密算法,其安全性強大,被廣泛應(yīng)用于信息加密、數(shù)字簽名等領(lǐng)域。在Linux操作系統(tǒng)下,可以使用OpenSSL工具生成RSA密鑰。本文將詳細(xì)介紹在Linux下生成RSA密鑰的步驟及相關(guān)技巧。

創(chuàng)新互聯(lián)從2013年開始,先為交口等服務(wù)建站,交口等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為交口企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
1. 安裝OpenSSL
在Linux系統(tǒng)中,OpenSSL通常已經(jīng)默認(rèn)安裝??梢酝ㄟ^以下命令檢查OpenSSL是否已經(jīng)安裝:
“`shell
openssl version
“`
如果沒有安裝,則需要通過包管理器安裝OpenSSL。常見的包管理器有apt、yum等,可以根據(jù)自己的Linux發(fā)行版和版本來選擇具體的包管理器。
2. 生成RSA密鑰
在Linux系統(tǒng)下,可以使用以下命令生成RSA密鑰:
“`shell
openssl genrsa -out private_key.pem 2023
“`
其中,genrsa表示生成RSA密鑰,-out指定生成的密鑰文件名,2023表示密鑰長度為2023位。一般情況下,2023位的密鑰已經(jīng)足夠安全,如果需要更高的安全性,可以使用4096位或更長的密鑰。
生成的密鑰文件包括私鑰和公鑰兩部分。私鑰存儲在private_key.pem文件中,可以使用以下命令查看私鑰內(nèi)容:
“`shell
cat private_key.pem
“`
公鑰可以從私鑰中導(dǎo)出。使用以下命令從私鑰中導(dǎo)出公鑰:
“`shell
openssl rsa -in private_key.pem -pubout -out public_key.pem
“`
其中,rsa表示對RSA密鑰進(jìn)行操作,-in指定輸入的密鑰文件,-pubout指定生成的是公鑰,-out指定輸出的公鑰文件名。
3. 使用RSA密鑰加密/解密數(shù)據(jù)
在Linux系統(tǒng)中,可以使用OpenSSL工具進(jìn)行RSA加密/解密操作。以下是加密和解密的命令格式:
“`shell
openssl rsautl -encrypt -in plntext.txt -inkey public_key.pem -pubin -out ciphertext.txt
openssl rsautl -decrypt -in ciphertext.txt -inkey private_key.pem -out plntext.txt
“`
其中,rsautl表示對RSA加密解密進(jìn)行操作,-encrypt表示加密操作,-in指定需要加密的數(shù)據(jù)文件名,-inkey指定用于加密的密鑰文件,-pubin表示輸入的密鑰文件是公鑰,-out指定加密后輸出的數(shù)據(jù)文件名。解密的參數(shù)與加密的參數(shù)相似,只是將-encrypt換成了-decrypt。
4. 小結(jié)
通過安裝和使用OpenSSL工具,生成和使用RSA密鑰變得十分容易。在實際使用中,需要注意以下幾點:
(1)為了保證密鑰的安全性,應(yīng)該定期更換密鑰;
(2)為了保證 RSA 加密/解密的速度,密鑰長度應(yīng)該選擇適當(dāng)?shù)拈L度;
(3)在進(jìn)行 RSA 加密/解密操作時,操作系統(tǒng)的性能也會影響速度,因此需要考慮選擇性能更好的服務(wù)器。
希望本文能夠幫助讀者更好地掌握在Linux下生成RSA密鑰的技巧,從而加強信息安全保護(hù)。
相關(guān)問題拓展閱讀:
- linux下怎樣設(shè)置ssh無密碼登錄
- 如何生成SSH key
- ssh-key關(guān)于authorized_keys電腦與linux互相認(rèn)證
linux下怎樣設(shè)置ssh無密碼登錄
用SSL加密Key實現(xiàn)自動登錄
需要材料:
1 被管理的SSH服務(wù)器一臺。
2 管理端電腦一臺。
環(huán)境:
管理服務(wù)器: ip:192.168.0.1 機器名:server
被管理服務(wù)器:ip:192.168.0.2 機器名:client
生成密鑰對:
生成公鑰密鑰對是在管理服務(wù)器上生成的:
# ssh-keygen -bt rsa
Generating 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的指紋
拷貝你的公鑰到被管理的服務(wù)器上
在你的管理服務(wù)器上把你的公鑰拷貝到被管理服務(wù)器上要進(jìn)行自動登陸的用戶目錄下。
# scp .ssh/id_dsa.pub : #比如你想使用用戶peter登陸,則remote_usrname請以peter代替
改名和進(jìn)行禪巧并權(quán)限設(shè)置
登陸被管理的服務(wù)器,進(jìn)入需要遠(yuǎn)程登陸的用戶目錄,把公鑰放到用戶目錄的 .ssh 這個目錄下(如果目錄不存在,需要創(chuàng)建~/.ssh目錄,并把目錄權(quán)限設(shè)置為700),把公鑰改名為authorized_keys2,并且把它的用戶權(quán)限設(shè)成600。
$ ls
id_rsa.pub
$ mkdir ~/.ssh #如果當(dāng)前用戶目錄下沒有 .ssh 目錄,請先創(chuàng)建目錄
$ chmod 700 ~/.ssh
$ mv id_rsa.pub ~/.ssh
$ cd ~/.ssh
$ cat id_rsa.pub >> authorized_keys2
$ rm -f id_rsa.pub
$ chmod 600 authorized_keys2
$ ls -l
total 4
-rwpeter peter 225 Oct 10 11:28 authorized_keys2
測試使用密鑰對進(jìn)行遠(yuǎn)程登陸
# ssh
Enter passphrase for key ‘/root/.ssh/id_rsa’: #提示輸入密碼短語,請輸入剛才設(shè)置的密碼短語
Last login: Sun Oct 10 11:32:from 192.168.0.1
$
如果你不能用正確的登錄,應(yīng)該重寬扒新檢查一下你的authorized_keys2的權(quán)限。也可能要檢查.ssh目錄的權(quán)限。
使用 ssh-agent(ssh代理)自動輸入密碼短語
牢記你的“密碼短句”,現(xiàn)在你可以用你的密鑰而不是密碼來登錄你的服務(wù)器了,但是這樣仍然沒有省什么事,你還是要輸入密鑰的“密碼短語”。有更簡便的方法嗎?答案就是采用SSH代理(ssh-agent),一個用來幫你記住“密碼短語”的程序。 ssh-agent是OpenSSH中默認(rèn)包括的ssh代理程序。
登陸管理服務(wù)器
# ssh-agent
SSH_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)你運行ssh-agent,它會打印出來它使用的 ssh 的環(huán)境和變量。要使用這些變量,有兩種方法,一種是手動進(jìn)行聲明環(huán)境變量,另一種是運行eval命令自動聲明環(huán)境變量。
方法一:手動聲明環(huán)境變量
# SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147; export SSH_AUTH_SOCK;
# SSH_AGENT_PID=2148; export SSH_AGENT_PID;
# printenv | grep SSH #檢查 ssh 環(huán)境變量是否已經(jīng)加入當(dāng)前會話的環(huán)境變量
SSH_AGENT_PID=2148
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147
方法二:運行eval命令自動聲明環(huán)境變量
# eval `ssh-agent`
Agent pid 2157
# printenv | grep SSH #檢查 ssh 環(huán)境變量是否已經(jīng)加入當(dāng)前會話的環(huán)境變量
SSH_AGENT_PID=2148
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147
現(xiàn)在 ssh-agent 已經(jīng)在運行了,但是 ssh-agent 里面是空白的不會有解密的專用密鑰。我們要告訴它我們有私鑰和這個私鑰在哪兒。這就需要使用 ssh-add 命令把我們的專用密鑰添加到 ssh-agent 的高速緩存中。
# ssh-add ~/.ssh/id_dsa
Enter passphrase for /home/user/.ssh/id_dsa: #輸入你的密碼短語
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
# ssh-add -l #查看 ssh代理的緩存內(nèi)容
:78:5e:6b:16:fd:f2:8c:81:b1:18:e6:9f:77:6e:be /root/.ssh/id_rsa (RSA)
如何生成SSH key
一:生成KEY
在終端中輸入:ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key重新建立ssh_host_dsa_key文件
以下是返回信息
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):(直接回車)
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
在終端中輸入:ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key重新建立ssh_host_rsa_key文件
以下是返神閉回陪迅信息
Generating public/private rkey pair.
Enter passphrase (empty for no passphrase):(直接回車)
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_rey.pub.
二
key生成在目錄/etc/ssh
沒有.ssh目錄的話手動創(chuàng)建,注意,它的目錄權(quán)限是700
cat ssh_host_dsa_key.pub >> /root/.ssh/authorized_keys
ssh_host_dsa_rey這個放到客戶游亂裂端
/etc/ssh/sshd_config配置如下
Port 22
PubkeyAuthentication yes
AuthorizedKeysFile /root/.ssh/authorized_keys
PasswordAuthentication no /*禁止密碼驗證登錄
1. 檢查SSH keys是否存在
輸入下面的命令,如果有文件id_rsa.pub 或 id_dsa.pub,則直接進(jìn)入步驟3將SSH key添加到GitHub中,否則進(jìn)入第二步生成SSH key
ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
2. 生成新的ssh key
之一步:生成public/private rsa key pair
在命令行中輸入ssh-keygen -t rsa -C “”
默認(rèn)會在相應(yīng)路徑下(/your_home_path)生成id_rsa和id_rsa.pub兩個文件,如下面代碼所示
ssh-keygen -t rsa -C “”
# Creates a new ssh key using the provided email
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home_path/.ssh/id_rsa):
第二步:輸入passphrase(本步驟可以跳過)
設(shè)置passphrase后,進(jìn)行版本控制時,每次與GitHub通信都會要求輸入passphrase,以避免某些“失誤”
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
sample result:
Your identification has been saved in /your_home_path/.ssh/id_rsa.
Your public key has been saved in /your_home_path/.ssh/id_rsa.pub.
The key fingerprint is:
#01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db
第三步:將新生旦塵鎮(zhèn)成的key添加到ssh-agent中:
# start the ssh-agent in the background
eval “$(ssh-agent -s)”
Agent pid 59566
ssh-add ~/.ssh/id_rsa
3. 將ssh key添加到GitHub中兄旦
用自己喜歡的文本編輯器打開id_rsa.pub文件,里面的信息即為SSH key,將這些信息復(fù)制到GitHub的Add SSH key頁面即可
不同的操作系統(tǒng),均有一些命令,直接將SSH key從文件拷貝到粘貼板中,如下模粗:
mac
pbcopy
# Copies the contents of the id_rsa.pub file to your clipboard
windows
clip
# Copies the contents of the id_rsa.pub file to your clipboard
linux
sudo apt-get install xclip
# Downloads and installs xclip. If you don’t have `apt-get`, you might need to use another installer (like `yum`)
xclip -sel clip
ssh-key關(guān)于authorized_keys電腦與linux互相認(rèn)證
概念:authorized_keys文件中存儲著本地系統(tǒng)可以允許遠(yuǎn)端計算機系統(tǒng)ssh免密碼登陸的賬號信息。也就是遠(yuǎn)端的計算機可以通過什么賬號及地址不需要輸入密碼既可以遠(yuǎn)程登陸本系統(tǒng)。
一、配置完本地ssh-key后,配置本地或者vscode保持長時間連接銀嘩遠(yuǎn)程linux服務(wù)器,避免每次都密碼登錄(突然造成遠(yuǎn)程服務(wù)逗察端口占用問題,耽誤我好久時間,只因為少執(zhí)行了(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)):
例如:
PC =(ssh)> (9.135.164.160)
9.135.164.160) =(ssh)> git
二、具體操作流程
單向登陸的操作過程(能滿足上邊的目的):
1、登錄A機器
2、ssh-keygen -t ,將會生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復(fù)制到B機器的 .ssh 目錄, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機器登錄B機器的目標(biāo)賬戶,不再需要密碼了;(直接運行 #ssh 192.168.20.60 )
雙向登陸的操作過程:
1、ssh-keygen做密碼驗證可以使在向?qū)Ψ綑C器上ssh ,scp不用使用密碼.具體方法如下:
2、兩個節(jié)點都執(zhí)行操作:#ssh-keygen -t rsa
然后全部回車,采用默認(rèn)值.
3、這樣生成了一對密鑰,存放在用戶目錄的~/.ssh下。
將公鑰考到對山搏茄方機器的用戶目錄下,并將其復(fù)制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。
4、設(shè)置文件和目錄權(quán)限:
設(shè)置authorized_keys權(quán)限
chmod 700 -R .ssh
關(guān)于linux rsa密鑰生成的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章標(biāo)題:掌握技巧:Linux下RSA密鑰生成詳解(linuxrsa密鑰生成)
文章路徑:http://m.fisionsoft.com.cn/article/cocpjoj.html


咨詢
建站咨詢
