如何設定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),但是配置完成後,管理員總是登入失敗。