1. 程式人生 > >如何設定SSH金鑰

如何設定SSH金鑰

關於SSH金鑰

SSH金鑰提供一種更為安全的虛擬專有伺服器登入機制,即利用SSH而非單純依靠密碼完成登入。與易被竊取的密碼不同,SSH金鑰幾乎無法以暴力方式破解。生成的金鑰對為我們提供兩條字串,即公鑰與私鑰。大家可以將公鑰儲存在任意伺服器,並利用配備有私鑰的客戶端對該伺服器者訪問。當二者匹配時,系統即會解鎖而不再需要輸入密碼內容。另外,大家也可以對私鑰進行保護以額外提升安全性水平。

第一步——建立RSA金鑰對

第一步是在客戶裝置上建立金鑰對:

ssh-keygen -t rsa

第二步——儲存金鑰與口令

輸入Gen Key命令後,系統會提示以下問題:

Enter file in which to save the key (/home/demo/.ssh/id_rsa):

這裡可以直接按下回車,從而將該檔案儲存在使用者home目錄中(本示例中的使用者名稱為demo)。

Enter passphrase (empty for no passphrase):

大家可以自行決定是否使用口令。輸入口令的作法確有優勢:無論金鑰的安全性有多高,也無論其如何進行加密,最終效果依然取決於其是否無法為他人所獲取。在使用口令時,即使受口令保護的私鑰落入未授權使用者手中,他們亦無法在不知道口令內容的情況下使用該私鑰。當然,其缺點在於在每次使用時,我們都需要手動輸入口令。

完整的金鑰生成流程如下所示:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 
[email protected]
The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+

現在公鑰已經儲存在/home/demo/.ssh/id_rsa.pub,而私鑰則儲存在/home/demo/.ssh/id_rsa。

第三步——複製公鑰

金鑰對生成完成後,我們需要將公鑰放置在需要使用的虛擬伺服器當中。

大家可以使用以下命令將公鑰複製到新裝置的authorized_keys檔案當中。請確保將使用者名稱與IP地址替換為您的實際值。

ssh-copy-id [email protected]

另外,大家也可以利用SSH直接貼上金鑰:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

無論使用哪種方法,其顯示結果應如下所示:

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
[email protected]'s password: 
Now try logging into the machine, with "ssh     '[email protected]'", and check in:

  ~/.ssh/authorized_keys

現在大家即可使用[email protected]實現登入而無需輸入密碼。不過,如果大家設定了口令,則需要在每次登入時都輸入一次口令。

第四步(可選)——禁用Root登入密碼

完成以上步驟後,我們還需要確保自己只能利用SSH金鑰進行登入,即禁用root登入。

開啟SSH配置檔案:

sudo nano /etc/ssh/sshd_config

在檔案中找到包含PermitRootLogin的一行,進行修改以確保使用者只能利用SSH金鑰完成登入:

PermitRootLogin without-password

過載以應用變更:

reload ssh

Digital Ocean Addendum

DIgital Ocean控制面板允許大家在建立新Droplet時為其新增公鑰。大家可以在方便的位置生成SSH金鑰,例如本地計算機,而後將其公鑰上傳至-SSH key位置。

此後,在我們建立新的VPS時,即可選擇在伺服器上使用該公鑰。如此一來,伺服器不會通過郵件向我們傳送root密碼,我們亦能夠通過選定的客戶端登入至新的虛擬專有伺服器。如果大家建立了口令,則需要在每次登入時正確輸入。

翻譯:diradw

相關推薦

如何設定SSH

關於SSH金鑰 SSH金鑰提供一種更為安全的虛擬專有伺服器登入機制,即利用SSH而非單純依靠密碼完成登入。與易被竊取的密碼不同,SSH金鑰幾乎無法以暴力方式破解。生成的金鑰對為我們提供兩條字串,即公鑰與私鑰。大家可以將公鑰儲存在任意伺服器,並利用配備有私鑰

Permission denied (publickey)錯誤 git遠端庫與本地庫同步 git設定ssh Bad escape character 'ygen'

最近剛學了一點git,然後就想在github上建一個遠端ACM倉庫同步我寫的ACM的程式碼。 我看的是廖雪峰的網站:廖雪峰教的新增遠端庫與本地庫同步 然後我照著上面的教程一步步弄,最後出現瞭如題:Permission denied (publickey)的錯

Ubuntu hadoop 偽分散式環境搭建步驟+ssh(免密碼登入)配置

27408 NameNode 28218 Jps 27643 SecondaryNameNode 28066 NodeManager 27803 ResourceManager 27512 DataNode 進入下面的網頁查詢具體資料 http://192.168.1.101:50070 (HD

ANSIBLE實現SSH的分發

1、先生成金鑰 [[email protected] ansible]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (

使用不同的SSH執行git命令

一般來說,通過Git命令對遠端倉庫進行操作的時候,都需要經過身份驗證,常用的身份驗證方式有兩種: HTTPS SSH 為了省去每進行一次Git操作就要輸入使用者名稱和密碼的麻煩(HTTPS協議),相信大部分人都是使用SSH協議進行身份驗證。SSH協議的使

SourceTree生成SSH(拉取GitLab程式碼)

1.為什麼 安全,好用,免密碼,逼格高 2.流程 1.安裝Git客戶端,安裝SourceTree客戶端,我的版本分別為:Git:2.9.3,SourceTree2.3.5,注意安裝最好不要

git 生成ssh

首先,檢查下自己之前有沒有已經生成: 在開始選單中開啟git下的git bash(當然,在其他目錄下開啟git bash也是一樣的): 然後執行: cd ~/.ssh 如果能進入到.ssh檔案目錄下 ,則證明,之前生成過.ssh祕鑰,可以直接使用裡面

Pycharm配置git提交的賬戶以及SSH

Pycharm配置git提交的賬戶: git 修改當前的project的使用者名稱的命令為:**git config user.name 你的目標使用者名稱**; git 修改當前的project提交郵

Mac 下source tree 與 gitlab 新增 ssh

因為專案要使用 gitlab 來管理程式碼,所以還是使用 sourcetree 客戶端來管理自己的程式碼,因為個人不太喜歡命令列(了無生趣),主要是不太會用命令列,哈哈,平常都是圖形化介面工具用的比較多,可這次就犯難了,gitlab 上使用了 sshKey, 我用 sour

Github和OSChina設定SSH免使用者名稱、密碼操作

許多人都會在使用Git的時候遇到這樣一個問題:每次pull/push都要驗證 username & password 有時候手賤輸入錯了還要重新來一次。 今天就教大家徹底解決這個煩惱~! 一、初始化Git使用者身份資訊 $ git co

初次安裝git配置使用者名稱和郵箱以及git如何使用ssh

一、初次安裝git需要配置使用者名稱和郵箱,否則git會提示:please tell me who you are. 你需要執行命令來配置你的使用者名稱和郵箱: $ git config --global user.name "******" $ git c

linux下ssh驗證的設定和遠端登入

使用linux有一段時間了,最近在伺服器上假設了一個git倉庫,每次提交時都使用密碼實在是比較反人類,因此就特意研究了一下如何使用ssh金鑰來登入伺服器。 公鑰和私鑰的生成 ssh-keygen命令專門是用來生成金鑰的。該命令有很多選項,這裡列出了最基本的四個: -

git之使用ssh-add新增

github的ssh配置如下: 一 、 設定git的user name和email: gitconfig−−globaluser.name"xuhaiyan" git config –global

[Linux] 在 Linux CLI 使用 ssh-keygen 生成 RSA

  RSA 是一種公鑰加密演算法,在 1977 年由麻省理工學院的%26nbsp;Ron Rivest, Adi Shamir, Leonard Adleman 三人一起提出,因此該演算法命名以三人姓氏首字母組合而成。 %26nbsp;   SSH 是 Secure Shell 縮寫,是建立在應用層和傳輸層

Linux使用使用者ssh主機

使用使用者金鑰ssh主機,在安全性上要大大高於直接輸入root 的密碼,具體實現,請看下面的教程。 ps:使用root許可權進行操作 1)先建立一個賬戶 // 建立一個賬戶lee,所屬組為wheel useradd -d /home/lee -g wheel lee 執行

linux ssh scp expect/ 自動登入並自動執行指令碼

不想使用金鑰,那就使用expect,自動填充密碼,現在自動登入,以及簡單自動化操作。 ssh自動登入 #!/usr/bin/expect -f set ip 192.168.1.10 set password 881234 set timeout 10 spawn

ssh 配置免登入

隨手筆記,要是寫的不好請見諒 1、ssh免金鑰的登陸原理: 通過命令生成一對和私鑰,公玥可以比喻為鎖,私鑰比喻為鑰匙,將鎖放在想訪問的伺服器中,我們就可以拿鑰匙去訪問伺服器啦。 2、 配置web

ssh記錄1--ssh普通使用者(非root使用者)的登入

ssh普通使用者(非root使用者)的金鑰登入 2013年07月09日 21:44:11 閱讀數:14838 ssh普通使用者(非root使用者)的金鑰登入 這裡以使用者名稱 zhangsan 為例。 由於個人習慣問題,我把使用者zhangsan的預設目錄改了,在使

xshell配置ssh使用(publice key)登入

大家都知道ssh一直提供兩種方式登入:口令認證方式和金鑰認證方式,口令的方式是我們最常使用的一種,接下來和大家談談使用金鑰的方式登入。 client(Windows Xshell) To Server(CentOS6.6)   1.生成金鑰(公鑰與私鑰),開啟是x

華為交換機ssh連線不上,重置長度

網路環境 在圖1的網路中,網路管理員希望通過SSH協議登入路由器(SSH Server),但是配置完成後,管理員總是登入失敗。