導航:首頁 > 配伺服器 > 伺服器rsa文件怎麼用

伺服器rsa文件怎麼用

發布時間:2023-03-12 22:04:03

㈠ ssh使用詳解

簡單來說,ssh是一種 網路協議 ,用於計算機之間的加密登錄。如果一個用戶從本地計算機,使用ssh協議登錄另一台遠程計算機,我們就可以認為,這種登錄是安全的,即使被中途截獲,密碼也不會泄露。

SSH 之所以安全是採用了公鑰加密的方式,通過客戶自己簽發公鑰加密用戶密碼,再通過主機持有的私鑰解密;不像 HTTPS 協議存在證書管理中心CA用於驗證公鑰的合法性,因此,存在被中間人劫持的風險,即劫持登錄請求發送篡改的公鑰來截獲用戶登錄密碼,俗稱」中間人攻擊「;

不過 SSH 存在一套自有的驗證方式:口令驗證及密鑰驗證,可有效避免大部分的攻擊;

使用上述命令測試連接性及驗證流程;

通過 ssh-keygen 工具生成本地公鑰文件,常用命令如下:

在 $HOME/.ssh/ 目錄下,會新生成兩個文件: id_rsa.pub 和 id_rsa 。 id_rsa.pub 是公鑰, id_rsa 是私鑰,其中 id_rsa 為默認文件名稱,若如上圖指定了文件路徑及名稱,則按照指定路徑及文件名生成;

說明:若 ssh 登錄使用密鑰驗證方式登錄,則需要輸入私鑰的密碼(生成密鑰時指定的密碼),若使用 ssh-agent 代理,則在同一個 session 會話下,只需要輸入一次私鑰密碼即可,由 ssh-agent 幫我們代理,避免每次登錄都需要輸入私密碼;

若登錄時未開啟,可手動開啟 ssh-agent ,可通過如下命令:

添加生成的 SSH key 到 ssh-agent :

查看添加的 SSH key :

若需要免密登錄,則需要將用戶的 public key 文件內存追加復制到登錄主機的 authorized_keys 配置文件中(默認路徑為 ~/.ssh/authorized_keys ),或者直接通過 ssh--id 工具完成,具體如下:

使用上述命令後即可實現 免密登錄

ssh 配置包括系統級別的(針對客戶端的默認為 /etc/ssh/ssh_config ,針對服務端的``/etc/ssh/sshd_config )及用戶級別的配置文件(默認為 ~/.ssh/config`);且配置文件存在優先順序,低優先順序的配置項可視作默認值;而高優先順序的配置項則會覆蓋默認值。按優先順序,有如下排序:

/etc/ssh/config 配置文件選項如下:

/etc/ssh/sshd_config 配置文件選項如下:

常用的選項如下:

ssh -T [email protected] 驗證連接性,成功如下:

ssh配置文件詳解

git-ssh 配置和使用

ssh-keygen - Generate a New SSH Key

最佳搭檔:利用 SSH 及其配置文件節省你的生命

linux生成的rsa秘鑰在哪

方法一, 有的時候經常需要登錄ssh,每次都需要輸入密碼,會比較繁瑣。所以設置了一下使用RSA公鑰認證的方式登錄Linux。 首先需要在伺服器端設置/etc/ssh/sshd_config # vim /etc/ssh/sshd_config 修改如下兩行為yes。其實大多數情況下不用修改,默認就是yes。 RSAAuthentication yes PubkeyAuthentication yes (1) 如果客戶機和伺服器都是Linux機器,那麼我們使用下面的方法:(後面第2節會提到怎麼在Windows下使用Putty生成密鑰對) 我們需要在客戶端生成RSA密鑰對。使用ssh-keygen命令: # ssh-keygen -t rsa 參數t的意思是type,後面跟著加密類型,這里我們是rsa。 然後會提示你輸入密鑰保存完成文件名,這里我們需要使用默認的id_rsa,之後才能正常才能登錄。如果你生成的密鑰作為其他用處,那麼可以命名為其他名稱: Generating public/private rsa key pair. Enter file in which to save the key (/home/cake/.ssh/id_rsa): 之後會提示你輸入一個passphrase,我們這里可以留空,這樣我們登錄的時候就不許輸入密碼。 Enter passphrase (empty for no passphrase): Enter same passphrase again: 然後會提示你密鑰生成成功。這是你的私鑰保存為~/.ssh/id_rsa,你的公鑰是~/.ssh/id_rsa.pub 我們現在需要做的是,把id_rsa.pub的內容,添加的伺服器端的~/.ssh/autherized_keys文件最後。 你可以把這個文件上傳到伺服器端,然後使用命令: # cat id_rsa.pub >> ~/.ssh/autherized_keys 到這里就完成了。 (2) 在Windows下使用Putty生成密鑰對: Putty的安裝目錄下有個puttygen.exe程序,我們運行這個程序。 之後點擊Generate,開始生成密鑰對。我們需要根據提示,在指定方框內隨機滑動滑鼠。這是為了根據滑鼠軌跡,產生一些隨機數據。 之後生成結束,我們點擊Save Private Key將私鑰存放在某個目錄中。然後賦值最上面文本框中的全部內容,粘貼到Linux伺服器端的autherized_key的最後。 我們現在可以關閉這個小程序。 現在打開Putty,在左邊的選項中,選擇Conneciton–SSH–Auth,在Private key file for authentication中,選擇剛才保存的私鑰路徑就可以了。 到此位置,Putty也可以不用密碼登錄了。 方法二 使用Linux主機生成的密匙 1、生成密匙 [root@ .ssh]#ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: e4:9a:47:a7:b4:8a:0b:98:07:b8:70:de:6b:16:2c:0croot@ 2、將 /root/.ssh/id_rsa.pub改名為/root/.ssh/authorized_keys [root@ .ssh]#mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys 3、將私鑰id_rsa拷貝到遠程客戶端 1)、如果遠程客戶端是linux,拷貝到遠程客戶端/root/.ssh/即可 2)、putty作為遠程客戶端在 putty不能識別直接從伺服器拷貝來的私鑰,需要使用puttygen.exe進行格式轉換 (1)、打開puttygen.exe --> Conversions --> Import Key (2)、選擇拷貝過來的私鑰文件id_rsa (3)、Save private key->id_rsa.ppk(保存私鑰) 4、打開putty.exe 1)、Session --> Host Name (填寫伺服器地址或者域名) 2)、Connection --> SSH --> Auth (點Browse選擇剛生成的id_rsa.ppk) 3)、open 成功打開後出現如下提示: login as: root Authenticating with public key "imported-openssh-key" ---------------------------------------------------------------------------------- 當然你有可能會遇到這個錯誤 [因為我遇到了,呵呵]: Permissions 0755 for '你配置的公鑰文件路徑' are too open. 這個是因為這幾個文件許可權設置的有點問題 執行命令: chmod 600 你的文件

㈢ 請簡述SSH秘鑰對登錄過程和NFS如何使用

步驟一:使用ssh-keygen -t rsa 命令創建秘鑰對,分別為:id_rsa(私鑰文件)和id_rsa.pub(公鑰文件),密鑰對保存在(/root/.ssh/)中,可以使用(cd .ssh/ , ll )查看;
步驟二:執行scp id_rsa.pub [email protected]:/root (根據自己的主機地址寫,這里的ip地址為SSH伺服器的IP)命令,將公鑰上傳到服務端的/root/目錄下;
步驟三:把公鑰放到某一個用戶的authorized_keys中,放到哪個用戶下就可以讓哪個用戶登錄。本例中放在root用戶下,如果root用戶下沒有.ssh目錄,就創建一個。具體指令如下:
mkdir .ssh //創建目錄
cat id_rsa.pub //讀一下公鑰內容
cat id_rsa.pub 》 .sh/authorized_keys //把公鑰文件內容追加到authorized_keys中
這樣做的目的有利於多個客戶端登錄,如果單純把id_rsa.pub改名為authorized_keys放到.ssh中,就只能允許一個客戶端登錄(伺服器一般都是多用戶進行管理);到這里基本上SSH密鑰對登錄就配置完成了,但是為了安全起見,一般還要進行一下的配置
步驟四:由於Linux中有一個強制安全的增強組件SELinux服務,而root創建的authorized_keys的許可權默認為644(rw_r__r__),SELinux會認為它不安全強制用戶把許可權修改為600(rw_______)。
步驟五:SELinux對Linux系統影響太大,對於初學者不太適合,所以可以把它關掉。具體方法如下:
vi /etc/selinux/config //進入selinux的配置文件,把默認的『SELinux=enforcing』 修改為『SELinux=disabled』,然後重啟Linux系統。
步驟六:修改伺服器端SSH配置文件:
vi /etc/ssh/sshd_config
RSAAuthentication yes 把這行前面的注釋號(『#』)去掉,表示打開RSA驗證
PubkeyAuthentication yes 同樣把這行的注釋號去掉,表示公鑰驗證打開。
Authorizedkeysfile .ssh/authorized_keys 去掉注釋號,允許使用公鑰驗證文件的保存位置。
passwordAuthentication no(默認為yes) 進制使用密碼驗證登錄(可選)
service sshd restart // 重啟ssh服務

㈣ iOSRSA加密和SHA驗簽

RSA是一種非對稱加密演算法,常用來對傳輸數據進行加密,配合上數字摘要演算法,也可以進行文字簽名。

padding即填充方式,由於RSA加密演算法中要加密的明文是要比模數小的,padding就是通過一些填充方式來限制明文的長度。後面會詳細介紹padding的幾種模式以及分段加密。

加密:公鑰放在客戶端,並使用公鑰對數據進行加密,服務端拿到數據後用私鑰進行解密;

加簽:私鑰放在客戶端,並使用私鑰對數據進行加簽,服務端拿到數據後用公鑰進行驗簽。

前者完全為了加密;後者主要是為了防惡意攻擊,防止別人模擬我們的客戶端對我們的伺服器進行攻擊,導致伺服器癱瘓。

RSA使用「密鑰對」對數據進行加密解密,在加密解密前需要先生存公鑰(Public Key)和私鑰(Private Key)。

公鑰(Public key): 用於加密數據. 用於公開, 一般存放在數據提供方, 例如iOS客戶端。

私鑰(Private key): 用於解密數據. 必須保密, 私鑰泄露會造成安全問題。

iOS中的Security.framework提供了對RSA演算法的支持,這種方式需要對密匙對進行處理, 根據public key生成證書, 通過private key生成p12格式的密匙

首先我們要會生成RSA密鑰文件,現在一步步的來給大家展示一下,如何生成我們所需的公鑰和私鑰文件:

$ openssl genrsa -out private.pem 1024

openssl:是一個自由的軟體組織,專注做加密和解密的框架。

genrsa:指定了生成了演算法使用RSA

-out:後面的參數表示生成的key的輸入文件

1024:表示的是生成key的長度,單位位元組(bits)

$ openssl req -new -key private.pem -out rsacert.csr

可以拿著這個文件去數字證書頒發機構(即CA)申請一個數字證書。CA會給你一個新的文件cacert.pem,那才是你的數字證書。(要收費的)

$ openssl x509 -req -days 3650 -in rsacert.csr -signkey private.pem -out rsacert.crt

509是一種非常通用的證書格式。

將用上面生成的密鑰privkey.pem和rsacert.csr證書請求文件生成一個數字證書rsacert.crt。這個就是公鑰

$ openssl x509 -outform der -in rsacert.crt -out rsacert.der

注意: 在 iOS開發中,公鑰是不能使用base64編碼的,上面的命令是將公鑰的base64編碼字元串轉換成二進制數據

在iOS使用私鑰不能直接使用,需要導出一個p12文件。下面命令就是將私鑰文件導出為p12文件。

$ openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsacert.crt

IOS客戶端的加解密首先我們需要導入Security.framework,

在ios中,我們主要關注四個函數

RSA演算法有2個作用一個是加密一個是加簽。從這幾個函數中,我們可以看到,我們第一種是使用公鑰能在客戶端:加密數據,以及伺服器端用私鑰解密。

第二個就是用私鑰在客戶端加簽,然後用公鑰在伺服器端用公鑰驗簽。第一種完全是為了加密,第二種是為了放抵賴,就是為了防止別人模擬我們的客戶端來攻擊我們的伺服器,導致癱瘓。

(1)獲取密鑰,這里是產生密鑰,實際應用中可以從各種存儲介質上讀取密鑰 (2)加密 (3)解密

(1)獲取密鑰,這里是產生密鑰,實際應用中可以從各種存儲介質上讀取密鑰 (2)獲取待簽名的Hash碼 (3)獲取簽名的字元串 (4)驗證

(1)私鑰用來進行解密和簽名,是給自己用的。

(2)公鑰由本人公開,用於加密和驗證簽名,是給別人用的。

(3)當該用戶發送文件時,用私鑰簽名,別人用他給的公鑰驗證簽名,可以保證該信息是由他發送的。當該用戶接受文件時,別人用他的公鑰加密,他用私鑰解密,可以保證該信息只能由他接收到。

使用事例:

Demo鏈接

閱讀全文

與伺服器rsa文件怎麼用相關的資料

熱點內容
linux字元設備驅動程序 瀏覽:57
全排列演算法java 瀏覽:465
中國銀行app轉賬電子回單在哪裡 瀏覽:51
操作簡單的程序員 瀏覽:600
數值積分演算法求pi 瀏覽:18
按鈕怎麼連命令方塊 瀏覽:909
房貸還清後不解壓能貸款嗎 瀏覽:36
程序員哄老婆開心技術 瀏覽:672
oracle自動備份壓縮文件 瀏覽:855
遵義人字形加密網帶 瀏覽:255
寧波人社在哪裡下載app 瀏覽:92
好噠商戶app下載在哪裡下載 瀏覽:609
廣發兌星巴克是在app哪裡操作 瀏覽:783
linuxgetline 瀏覽:215
app的懸浮窗許可權在哪裡設置 瀏覽:686
51單片機定時器溢出標志 瀏覽:373
單片機燒寫方法圖解 瀏覽:399
遍歷輸出java 瀏覽:551
貴妃app直播哪裡下載 瀏覽:273
android手機屏幕寬度和高度 瀏覽:816