1. 求助,linux中ssh-keygen生成的密碼放在那裡的
存放在~/.ssh下面,一個公鑰一個私鑰。
2. linux無法執行ssh-keygen
內容不存在,戚源可能為如下原因導致:
① 內容還在審核中
② 內容以前存在,但是由於不符合新
的李陸規定而被刪除
③ 內容地址錯誤
④ 作者刪除了內容。
可以到 建議專區 反饋更多問題高擾態。
3. linux之ssh命令詳解
ssh是什麼呢? 👉網路上是這么說的
簡單來說,在linux中SSH是非常常用的工具,通過SSH客戶端我們可以連接到運行了SSH伺服器的遠程機器上,也就是說,我們可以通過ssh來遠程式控制制我們的電腦或者伺服器。那麼ssh協議的優點就是數據傳輸是加密的,可以防止信息泄露,而且數據傳輸是壓縮的,可以提高傳輸速度。
它的命令格式是👉 ssh [-p port] user@remote
user 是在遠程機器上的用戶名,如果不指定的話默認為當前用戶
remote 是遠程機器的地址,可以是IP/域名,或者是別名
port 是SSH Server監聽的埠,如果不指定,就為默認值22
(使用exit退出當前用戶的登錄)
有關SSH配置信息都保存在用戶家目錄下的.ssh目錄下
接下來,我們就來實際演示一下ssh命令的使用
首先我們需要兩台linux系統的電腦來進行演示,所以我用虛擬機安裝了兩個linux的系統,分別命名為Deepin1和Deepin2(不得不說deepin真的是即好看又好用😄)
不過deepin操作系統默認ssh是沒有開啟的,我們需要手動將它開啟。
第一步,在終端輸入sudo apt-get install ssh安裝ssh服務
第二步,在終端中輸入sudo service ssh start開啟ssh服務
注意:deepin1和deepin2都要執行上面兩步來安裝和開啟ssh服務
安裝並打開ssh之後,我們使用Deepin1來遠程連接Deepin2,那麼我們需要知道Deepin2的ip地址,在終端中輸入ifconfig就可以知道當前機器的ip地址了,或者也可以直接把滑鼠放到網路連接上,會直接顯示出來。我這里Deepin2的IP地址為:192.168.56.132
然後,我們在Deepin1的終端中輸入ssh -p 22 [email protected]然後回車
這里 -p 22 可以省略,22表示ssh的埠號為22, deepin2 為Deepin2的用戶名, 192.168.56.132 為Deepin2的ip地址。
第一次連接,會彈出來是否連接的確認信息,我們輸入yes確認,然後輸入deepin2的密碼並回車。出現如下界面就表示連接成功了。
連接成功後,我們嘗試輸入 cd Desktop/ 切換到桌面目錄,然後輸入 touch 123.txt 在桌面下創建123.txt文件
我們再切換到Deepin2系統中,發現桌面上的確出現了一個新的文件123.txt,大功告成!
到這里ssh的基本操作其實已經演示完了,但是我們發現每次遠程登陸的時候都需要重新輸入密碼,稍微有點麻煩,其實我們可以通過設置,進行免密碼登錄。
免密登錄:
第一步,配置公鑰。在Deepin1終端中執行ssh-keygen即可生成SSH鑰匙,一路回車即可。
第二步,上傳公鑰到伺服器。在Deepin1終端中執行ssh--id -p port user@remotr(ssh--id -p 22 [email protected])可以讓遠程伺服器記住我們。
第三步,設置完成了,試一下是否能免密登錄呢?
可以看到,當我們遠程登陸deepin2時,並沒有輸入用戶密碼就登陸成功了!其實挺簡單的不是嗎?
4. linux下怎樣設置ssh無密碼登錄
在CentOS/RHEL上設置SSH免密碼登錄
導讀 作為系統管理員,你計劃在 Linux 上使用 OpenSSH,完成日常工作的自動化,比如文件傳輸、備份資料庫轉儲文件到另一台伺服器等。為實現該目標,你需要從主機 A 能自動登錄到主機 B。自動登錄也就是說,要在 shell 腳本中使用ssh,而無需要輸入任何密碼。
本文會告訴你怎樣在 CentOS/RHEL 上設置 SSH 免密碼登錄。自動登錄配置好以後,你可以通過它使用 SSH (Secure Shell)和安全復制 (SCP)來移動文件。
SSH 是開源的,是用於遠程登錄的最為可靠的網路協議。系統管理員用它來執行命令,以及通過 SCP 協議在網路上向另一台電腦傳輸文件。
通過配置 SSH 免密碼登錄,你可以享受到如下的便利:
◆用腳本實現日常工作的自動化。
◆增強 Linux 伺服器的安全性。這是防範虛擬專用伺服器(VPS)遭受暴力破解攻擊的一個推薦的方法,SSH 密鑰單憑暴力破解 是幾乎不可攻破的。
什麼是 Ssh-Keygen
ssh-keygen 是一個用來生成、創建和管理 SSH 認證用的公私鑰的工具。通過 ssh-keygen 命令,用戶可以創建支持SSH1 和 SSH2 兩個協議的密鑰。ssh-keygen 為 SSH1 協議創建 RSA 密鑰,SSH2 則可以是 RSA 或 DSA。
什麼是 Ssh-Copy-Id
ssh--id 是用來將本地公鑰拷貝到遠程的 authorized_keys 文件的腳本命令,它還會將身份標識文件追加到遠程機器的 ~/.ssh/authorized_keys 文件中,並給遠程主機的用戶主目錄適當的的許可權。
SSH 密鑰
SSH 密鑰為登錄 Linux 伺服器提供了更好且安全的機制。運行 ssh-keygen 後,將會生成公私密鑰對。你可以將公鑰放置到任意伺服器,從持有私鑰的客戶端連接到伺服器的時,會用它來解鎖。兩者匹配時,系統無需密碼就能解除鎖定。
在 CentOS 和 RHEL 上設置免密碼登錄 SSH
以下步驟在 CentOS 5/6/7、RHEL 5/6/7 和 Oracle Linux 6/7 上測試通過。
節點1:192.168.0.9 節點2 : 192.168.0.10
本章目錄結構 [收起]
步驟一 :
步驟二:
步驟三:
步驟四:
步驟一 :
測試節點1到節點2的連接和訪問:
[root@node1 ~]# ssh [email protected]
The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established.
RSA key fingerprint is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.10' (RSA) to the list of known hosts.
[email protected]'s password:
Last login: Thu Dec 10 22:04:55 2015 from 192.168.0.1
[root@node2 ~]#
步驟二:
使用 ssh-key-gen 命令生成公鑰和私鑰,這里要注意的是可以對私鑰進行加密保護以增強安全性。
[root@node1 ~]# ssh-keygen
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:
b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| . ++ |
| o o o |
| o o o . |
| . o + .. |
| S . . |
| . .. .|
| o E oo.o |
| = ooo. |
| . o.o. |
+-----------------+
步驟三:
用 ssh--id 命令將公鑰復制或上傳到遠程主機,並將身份標識文件追加到節點2的 ~/.ssh/authorized_keys 中:
[root@node1 ~]# ssh--id -i ~/.ssh/id_rsa.pub 192.168.0.10
[email protected]'s password:
Now try logging into the machine, with "ssh '192.168.0.10'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
步驟四:
驗證免密碼 SSH 登錄節點2:
[root@node1 ~]# ssh [email protected]
Last login: Sun Dec 13 14:03:20 2015 from www.ehowstuff.local
網路搜索《linux就該這么學》,技術干貨裡面有,也可以看下這本書!
5. ssh-key關於authorized_keys電腦與linux互相認證
概念:authorized_keys文件中存儲著本地系統可以允許遠端計算機系統ssh免密碼登陸的賬號信息。也就是遠端的計算機可以通過什麼賬號及地址不需要輸入密碼既可以遠程登陸本系統。
一、配置完本地ssh-key後,配置本地或者vscode保持長時間連接銀嘩遠程linux伺服器,避免每次都密碼登錄(突然造成遠程服務逗察埠佔用問題,耽誤我好久時間,只因為少執行了(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)):
例如:
PC =(ssh)> (9.135.164.160)
9.135.164.160) =(ssh)> git
二、具體操作流程
單向登陸的操作過程(能滿足上邊的目的):
1、登錄A機器
2、ssh-keygen -t [rsa|dsa],將會生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復制到B機器的 .ssh 目錄, 並 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機器登錄B機器的目標賬戶,不再需要密碼了;(直接運行 #ssh 192.168.20.60 )
雙向登陸的操作過程:
1、ssh-keygen做密碼驗證可以使在向對方機器上ssh ,scp不用使用密碼.具體方法如下:
2、兩個節點都執行操作:#ssh-keygen -t rsa
然後全部回車,採用默認值.
3、這樣生成了一對密鑰,存放在用戶目錄的~/.ssh下。
將公鑰考到對山搏茄方機器的用戶目錄下,並將其復制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。
4、設置文件和目錄許可權:
設置authorized_keys許可權
chmod 700 -R .ssh
5、要保證.ssh和authorized_keys都只有用戶自己有寫許可權。否則驗證無效。
6. Linux——配置伺服器間的免密登錄
ssh-keygen 命令 用於為「ssh」生成、管理和轉換認證密鑰,它支持RSA和DSA兩種認證密鑰。SSH 密鑰默認保留在 ~/.ssh 目錄中。如果沒有 ~/.ssh 目錄,ssh-keygen命令會使用正確的許可權創建一個。
執行完命令後,會有幾個選項給你選擇,一般來說直接回車,使用默認配置即可。需要注意的是, 如果本身伺服器已經生成過ssh秘鑰了,這一步可以省略
想知道秘鑰曾經生成過,可以看步驟二。
正常來說,如果 ssh-keygen 命令執行成功,我們可以在目錄中看到吵物有 id_rsa (存放私鑰)和 id_rsa.pub (存放公鑰)兩個文件
先簡單介紹一下 ssh--id 命令
ssh--id 命令可以把本地主機的公鑰復制到遠程主機的 authorized_keys 文件上。authorized_keys 文件用來驗證 client 。使用 ssh--id 命令將本地公鑰復制到遠程主機之後可以實現免密登錄遠程輪唯主機。如果不傳入 -i 參數, ssh--id 使用默認 ~/.ssh/identity.pub 作為默認公鑰。 如果多次運行 ssh--id ,該命令不會檢查重復,會在遠程主機中多次寫入 authorized_keys 。
注意,本地升桐液 ~/.ssh/id_rsa 的許可權,chmod 400 ~/.ssh/id_rsa ,該文件包含用於授權的私鑰, 如果該文件可以被其他用戶訪問,ssh 會忽略該私鑰。
執行完上述命令後,我們後續就可以免密登錄其他伺服器了。
如果需要配置免密登錄的伺服器比較多,我們可以通過腳本來解決這些重復性的動作。
7. Linux 下實現SSH互信
一、准備兩台伺服器:
A機:192.168.1.1
B機:192.168.1.2
二、雙機建立信任
1、在A機生成秘鑰證書
在root下執行ssh-keygen命令,一路回車,生成秘鑰證書
# ssh-keygen -t rsa
2、查看生成秘鑰文件
# cd ~/.ssh
# ll
文件:私鑰證書id_rsa、公鑰證書id_rsa.pub
3、A對B建立信任關系
3.1 將公鑰證書id_rsa.pub復制到機器B的root家目錄的.ssh子目錄中,同時將文件名更換為authorized_keys
# scp -r id_rsa.pub [email protected]:/root/.ssh/authorized_keys
3.2 若3.1報錯:No such file or directory
使用:# ssh--id -i id_rsa.pub [email protected]
ssh--id命令會自動將id_rsa.pub文件的內容追加到遠程主機root用戶下.ssh/authorized_keys文件中
3.3 查看B機器是否接收
# ssh 192.168.1.2
# cd .ssh/
# ls
# cat authorized_keys
# exit
3.4 B對A建立信任,同上3的操作步驟
8. linux系統ssh文件丟失
如果linux系統的ssh文扒槐念件丟失,可以嘗試使用ssh-keygen命令重新生成ssh文件春困,或者從備份中恢復ssh文件。明襪
9. linux修改sshkey長度
題主是否想詢問蘆頌「linux怎麼修改sshkey長度」?
1、首先檢查SSHkeys是否存在飢乎ls-al~/.ssh。(若不是第一次更改,則會出現drwx-2wxwx4096)
2、輸入[email protected]。
3、最後登錄github。打開setting->SSHkeys,點擊陪肢鄭右上角NewSSHkey,把生成好的公鑰id_rsa.pub放進key輸入框中,再為當前的key起一個title來區分每個key,即可修改。
10. Linux 下設置SSH key登錄
設置ssh key 登錄有兩個好處:
具體配置步驟如下:
注意,輸入ssh-keygen後,會有提示,默認回車就行,最後生成秘鑰:id_rsa和公鑰id_rsa.pub
4. 將私鑰拷貝出來,然後刪除這兩個文件
5. 配置xshell使用秘鑰文件登錄,如下圖: