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

創(chuàng)新互聯(lián)從2013年開(kāi)始,先為交口等服務(wù)建站,交口等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為交口企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
1. 安裝OpenSSL
在Linux系統(tǒng)中,OpenSSL通常已經(jīng)默認(rèn)安裝??梢酝ㄟ^(guò)以下命令檢查OpenSSL是否已經(jīng)安裝:
“`shell
openssl version
“`
如果沒(méi)有安裝,則需要通過(guò)包管理器安裝OpenSSL。常見(jiàn)的包管理器有apt、yum等,可以根據(jù)自己的Linux發(fā)行版和版本來(lái)選擇具體的包管理器。
2. 生成RSA密鑰
在Linux系統(tǒng)下,可以使用以下命令生成RSA密鑰:
“`shell
openssl genrsa -out private_key.pem 2023
“`
其中,genrsa表示生成RSA密鑰,-out指定生成的密鑰文件名,2023表示密鑰長(zhǎng)度為2023位。一般情況下,2023位的密鑰已經(jīng)足夠安全,如果需要更高的安全性,可以使用4096位或更長(zhǎng)的密鑰。
生成的密鑰文件包括私鑰和公鑰兩部分。私鑰存儲(chǔ)在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表示對(duì)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表示對(duì)RSA加密解密進(jìn)行操作,-encrypt表示加密操作,-in指定需要加密的數(shù)據(jù)文件名,-inkey指定用于加密的密鑰文件,-pubin表示輸入的密鑰文件是公鑰,-out指定加密后輸出的數(shù)據(jù)文件名。解密的參數(shù)與加密的參數(shù)相似,只是將-encrypt換成了-decrypt。
4. 小結(jié)
通過(guò)安裝和使用OpenSSL工具,生成和使用RSA密鑰變得十分容易。在實(shí)際使用中,需要注意以下幾點(diǎn):
(1)為了保證密鑰的安全性,應(yīng)該定期更換密鑰;
(2)為了保證 RSA 加密/解密的速度,密鑰長(zhǎng)度應(yīng)該選擇適當(dāng)?shù)拈L(zhǎng)度;
(3)在進(jìn)行 RSA 加密/解密操作時(shí),操作系統(tǒng)的性能也會(huì)影響速度,因此需要考慮選擇性能更好的服務(wù)器。
希望本文能夠幫助讀者更好地掌握在Linux下生成RSA密鑰的技巧,從而加強(qiáng)信息安全保護(hù)。
相關(guān)問(wèn)題拓展閱讀:
- linux下怎樣設(shè)置ssh無(wú)密碼登錄
- 如何生成SSH key
- ssh-key關(guān)于authorized_keys電腦與linux互相認(rèn)證
linux下怎樣設(shè)置ssh無(wú)密碼登錄
用SSL加密Key實(shí)現(xiàn)自動(dòng)登錄
需要材料:
1 被管理的SSH服務(wù)器一臺(tái)。
2 管理端電腦一臺(tái)。
環(huán)境:
管理服務(wù)器: ip:192.168.0.1 機(jī)器名:server
被管理服務(wù)器:ip:192.168.0.2 機(jī)器名:client
生成密鑰對(duì):
生成公鑰密鑰對(duì)是在管理服務(wù)器上生成的:
# ssh-keygen -bt rsa
Generating public/private rsa key pair. #提示正在生成rsa密鑰對(duì)
Enter file in which to save the key (/home/usrname/.ssh/id_dsa): #詢(xún)問(wèn)公鑰和私鑰存放的位置,回車(chē)用默認(rèn)位置即可
Enter passphrase (empty for no passphrase): #詢(xún)問(wèn)輸入私鑰密語(yǔ),輸入密語(yǔ)
Enter same passphrase again: #再次提示輸入密語(yǔ)確認(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)行自動(dòng)登陸的用戶(hù)目錄下。
# scp .ssh/id_dsa.pub : #比如你想使用用戶(hù)peter登陸,則remote_usrname請(qǐng)以peter代替
改名和進(jìn)行禪巧并權(quán)限設(shè)置
登陸被管理的服務(wù)器,進(jìn)入需要遠(yuǎn)程登陸的用戶(hù)目錄,把公鑰放到用戶(hù)目錄的 .ssh 這個(gè)目錄下(如果目錄不存在,需要?jiǎng)?chuàng)建~/.ssh目錄,并把目錄權(quán)限設(shè)置為700),把公鑰改名為authorized_keys2,并且把它的用戶(hù)權(quán)限設(shè)成600。
$ ls
id_rsa.pub
$ mkdir ~/.ssh #如果當(dāng)前用戶(hù)目錄下沒(méi)有 .ssh 目錄,請(qǐng)先創(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
測(cè)試使用密鑰對(duì)進(jìn)行遠(yuǎn)程登陸
# ssh
Enter passphrase for key ‘/root/.ssh/id_rsa’: #提示輸入密碼短語(yǔ),請(qǐng)輸入剛才設(shè)置的密碼短語(yǔ)
Last login: Sun Oct 10 11:32:from 192.168.0.1
$
如果你不能用正確的登錄,應(yīng)該重寬扒新檢查一下你的authorized_keys2的權(quán)限。也可能要檢查.ssh目錄的權(quán)限。
使用 ssh-agent(ssh代理)自動(dòng)輸入密碼短語(yǔ)
牢記你的“密碼短句”,現(xiàn)在你可以用你的密鑰而不是密碼來(lái)登錄你的服務(wù)器了,但是這樣仍然沒(méi)有省什么事,你還是要輸入密鑰的“密碼短語(yǔ)”。有更簡(jiǎn)便的方法嗎?答案就是采用SSH代理(ssh-agent),一個(gè)用來(lái)幫你記住“密碼短語(yǔ)”的程序。 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)你運(yùn)行ssh-agent,它會(huì)打印出來(lái)它使用的 ssh 的環(huán)境和變量。要使用這些變量,有兩種方法,一種是手動(dòng)進(jìn)行聲明環(huán)境變量,另一種是運(yùn)行eval命令自動(dòng)聲明環(huán)境變量。
方法一:手動(dòng)聲明環(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ì)話(huà)的環(huán)境變量
SSH_AGENT_PID=2148
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147
方法二:運(yùn)行eval命令自動(dòng)聲明環(huán)境變量
# eval `ssh-agent`
Agent pid 2157
# printenv | grep SSH #檢查 ssh 環(huán)境變量是否已經(jīng)加入當(dāng)前會(huì)話(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ì)有解密的專(zhuān)用密鑰。我們要告訴它我們有私鑰和這個(gè)私鑰在哪兒。這就需要使用 ssh-add 命令把我們的專(zhuān)用密鑰添加到 ssh-agent 的高速緩存中。
# ssh-add ~/.ssh/id_dsa
Enter passphrase for /home/user/.ssh/id_dsa: #輸入你的密碼短語(yǔ)
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):(直接回車(chē))
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):(直接回車(chē))
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
沒(méi)有.ssh目錄的話(huà)手動(dòng)創(chuàng)建,注意,它的目錄權(quán)限是700
cat ssh_host_dsa_key.pub >> /root/.ssh/authorized_keys
ssh_host_dsa_rey這個(gè)放到客戶(hù)游亂裂端
/etc/ssh/sshd_config配置如下
Port 22
PubkeyAuthentication yes
AuthorizedKeysFile /root/.ssh/authorized_keys
PasswordAuthentication no /*禁止密碼驗(yàn)證登錄
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)會(huì)在相應(yīng)路徑下(/your_home_path)生成id_rsa和id_rsa.pub兩個(gè)文件,如下面代碼所示
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(本步驟可以跳過(guò))
設(shè)置passphrase后,進(jìn)行版本控制時(shí),每次與GitHub通信都會(huì)要求輸入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中兄旦
用自己喜歡的文本編輯器打開(kāi)id_rsa.pub文件,里面的信息即為SSH key,將這些信息復(fù)制到GitHub的Add SSH key頁(yè)面即可
不同的操作系統(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文件中存儲(chǔ)著本地系統(tǒng)可以允許遠(yuǎn)端計(jì)算機(jī)系統(tǒng)ssh免密碼登陸的賬號(hào)信息。也就是遠(yuǎn)端的計(jì)算機(jī)可以通過(guò)什么賬號(hào)及地址不需要輸入密碼既可以遠(yuǎn)程登陸本系統(tǒng)。
一、配置完本地ssh-key后,配置本地或者vscode保持長(zhǎng)時(shí)間連接銀嘩遠(yuǎn)程linux服務(wù)器,避免每次都密碼登錄(突然造成遠(yuǎn)程服務(wù)逗察端口占用問(wèn)題,耽誤我好久時(shí)間,只因?yàn)樯賵?zhí)行了(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)):
例如:
PC =(ssh)> (9.135.164.160)
9.135.164.160) =(ssh)> git
二、具體操作流程
單向登陸的操作過(guò)程(能滿(mǎn)足上邊的目的):
1、登錄A機(jī)器
2、ssh-keygen -t ,將會(huì)生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復(fù)制到B機(jī)器的 .ssh 目錄, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機(jī)器登錄B機(jī)器的目標(biāo)賬戶(hù),不再需要密碼了;(直接運(yùn)行 #ssh 192.168.20.60 )
雙向登陸的操作過(guò)程:
1、ssh-keygen做密碼驗(yàn)證可以使在向?qū)Ψ綑C(jī)器上ssh ,scp不用使用密碼.具體方法如下:
2、兩個(gè)節(jié)點(diǎn)都執(zhí)行操作:#ssh-keygen -t rsa
然后全部回車(chē),采用默認(rèn)值.
3、這樣生成了一對(duì)密鑰,存放在用戶(hù)目錄的~/.ssh下。
將公鑰考到對(duì)山搏茄方機(jī)器的用戶(hù)目錄下,并將其復(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元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
本文名稱(chēng):掌握技巧:Linux下RSA密鑰生成詳解(linuxrsa密鑰生成)
文章鏈接:http://www.5511xx.com/article/cocpjoj.html


咨詢(xún)
建站咨詢(xún)
