首先明確一點,一對密鑰分為私鑰和公鑰,私鑰是你自己留著的,公鑰是放在遠程主機的。密鑰對通過 ssh-keygen 創建的,在哪臺主機創建的無所謂,你可以將公鑰放到任意你想登陸的服務器上,也可以把私鑰放到任意需要登陸的客戶機上。
創新互聯公司從2013年成立,先為特克斯等服務建站,特克斯等地企業,進行企業商務咨詢服務。為特克斯企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
現在使用 ssh-keygen 生成一對密鑰
使用 ssh-copy-id 將公鑰發送到指定的主機上
在目標主機的 ~/.ssh/authorized_keys 中會添加剛剛發送來的公鑰。
這樣就可以實現免密登陸了。
Linux 使用ssh-agent來管理密鑰,使用 ssh-keygen 生成之后會自動添加到ssh-agent,也可以通過 ssh-add 私鑰 來添加,通過以下命令操作
有些程序點名需要 -----BEGIN OPENSSH RSA KEY-----
可以使用以下命令生成
1. 制作密鑰對
在服務器上制作密鑰對。首先用密碼登錄到你打算使用密鑰登錄的賬戶,然后執行以下命令:
[root@host ~]$ ssh-keygen == 下面是相應的操作提示,以及密鑰生成的位置都會告訴我們。
Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): == 按 EnterCreated directory '/root/.ssh'.Enter passphrase (empty for no passphrase): == 輸入密鑰鎖碼,或直接按 Enter 留空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:0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
在 當前 用戶的家目錄中生成了一個 .ssh 的隱藏目錄,內含兩個密鑰文件。id_rsa 為私鑰,id_rsa.pub 為公鑰。
2. 在服務器上安裝公鑰
鍵入以下命令,在服務器上安裝公鑰:
[root@host ~]$ cd .ssh
[root@host .ssh]$ cat id_rsa.pub authorized_keys
如此便完成了公鑰的安裝。為了確保連接成功,請保證以下文件權限正確:
[root@host .ssh]$ chmod 600 authorized_keys[root@host .ssh]$ chmod 700 ~/.ssh
3. 設置 SSH,打開密鑰登錄功能
編輯 /etc/ssh/sshd_config 文件,添加如下設置:
sudo vi /etc/ssh/sshd_config
RSAAuthentication yesPubkeyAuthentication yes
接著保存后 另外,請留意 root 用戶能否通過 SSH 登錄:PermitRootLogin yes
當你完成全部設置,并以密鑰方式登錄成功后,再禁用密碼登錄:
PasswordAuthentication no
最后,重啟 SSH 服務:
[root@host .ssh]$ service sshd restart
首先在服務器上制作密鑰對
密鑰鎖碼在使用私鑰時必須輸入,這樣就可以保護私鑰不被盜用。當然,也可以留空,實現無密碼登錄。
現在,在 root 用戶的家目錄中生成了一個 .ssh 的隱藏目錄,內含兩個密鑰文件。id_rsa 為私鑰,id_rsa.pub 為公鑰。
鍵入以下命令,在服務器上安裝公鑰:
如此便完成了公鑰的安裝。為了確保連接成功,請保證以下文件權限正確:
編輯 /etc/ssh/sshd_config 文件,進行如下設置:
最后,重啟 SSH 服務:
將打印出的結果保存成id_rsa文件,供ssh客戶端登陸使用