日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

轉自:
https://kermsite.com/p/wt-ssh/

由于格式問題,部分鏈接、表格可能會失效,若失效請訪問原文

密碼登錄 以及 通過密鑰實現免密碼登錄

Dec 15, 2021

閱讀時長: 6 分鐘

簡介

windows terminal是新一代Windows終端。在Windows11中默認安裝,只需要:

  • win+R運行wt
  • 或者在文件管理器任意位置右鍵在Windows終端中打開

即可喚起。

目前似乎沒有對應的快捷鍵,可以自己設定。

Windows terminal內置支持ssh,無需額外安裝軟件就可以連接到服務器

推測是內置了openssh不過并不是完整版,有些命令不能使用。(當然大部分還是可以的)

優勢:

  • 系統自帶,無需另外安裝軟件
  • 界面美觀好看,可以自定義
  • 支持使用密鑰,實現免密碼登錄
  • 配置文件似乎可以多設備同步?(個人不太清楚,按照Github上某個issue的說法是可以的,但是我的似乎沒有同步)

一行代碼實現登錄

打開Windows terminal,在power shell界面下,直接使用:

ssh user@ip
例如:
ssh kerm@52.184.**.**

進行連接。

好處是方便,壞處是每一次都要輸入密碼。

使用密鑰登錄,免輸密碼

Windows terminal創建密鑰的過程和openssh完全相同。

附上一段openssh密鑰創建的教程(以及我的一些筆記),摘自:SSH 密鑰登錄 - SSH 教程 - 網道

SSH 密鑰登錄

SSH 默認采用密碼登錄,這種方法有很多缺點,簡單的密碼不安全,復雜的密碼不容易記憶,每次手動輸入也很麻煩。密鑰登錄是比密碼登錄更好的解決方案。

密鑰是什么

密鑰(key)是一個非常大的數字,通過加密算法得到。對稱加密只需要一個密鑰,非對稱加密需要兩個密鑰成對使用,分為公鑰(public key)和私鑰(private key)。

SSH 密鑰登錄采用的是非對稱加密,每個用戶通過自己的密鑰登錄。其中,私鑰必須私密保存,不能泄漏;公鑰則是公開的,可以對外發送。它們的關系是,公鑰和私鑰是一一對應的,每一個私鑰都有且僅有一個對應的公鑰,反之亦然。

如果數據使用公鑰加密,那么只有使用對應的私鑰才能解密,其他密鑰都不行;反過來,如果使用私鑰加密(這個過程一般稱為“簽名”),也只有使用對應的公鑰解密。

密鑰登錄的過程

SSH 密鑰登錄分為以下的步驟。

預備步驟,客戶端通過ssh-keygen生成自己的公鑰和私鑰。

第一步,手動將客戶端的公鑰放入遠程服務器的指定位置。

第二步,客戶端向服務器發起 SSH 登錄的請求。

第三步,服務器收到用戶 SSH 登錄的請求,發送一些隨機數據給用戶,要求用戶證明自己的身份。

第四步,客戶端收到服務器發來的數據,使用私鑰對數據進行簽名,然后再發還給服務器。

第五步,服務器收到客戶端發來的加密簽名后,使用對應的公鑰解密,然后跟原始數據比較。如果一致,就允許用戶登錄。

ssh-keygen命令:生成密鑰

密鑰登錄時,首先需要生成公鑰和私鑰。OpenSSH 提供了一個工具程序ssh-keygen命令,用來生成密鑰。

直接輸入ssh-keygen,程序會詢問一系列問題,然后生成密鑰。

$ ssh-keygen

輸入上面的命令以后,ssh-keygen會要求用戶回答一些問題。

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_dsa):  press ENTER
Enter passphrase (empty for no passphrase): ********
Enter same passphrase again: ********
Your identification has been saved in /home/username/.ssh/id_dsa.
Your public key has been saved in /home/username/.ssh/id_dsa.pub.
The key fingerprint is:
14:ba:06:98:a8:98:ad:27:b5:ce:55:85:ec:64:37:19 username@shell.isp.com

上面示例中,執行ssh-keygen命令以后,會出現第一個問題,詢問密鑰保存的文件名,默認是~/.ssh/id_dsa文件,這個是私鑰的文件名,對應的公鑰文件~/.ssh/id_dsa.pub是自動生成的。用戶的密鑰一般都放在主目錄的.ssh目錄里面。

注意所用目錄應該是一個已經存在的.ssh/空文件夾(有ssh/文件夾,這個文件夾里面是空的),否則會報錯。

接著,就會是第二個問題,詢問是否要為私鑰文件設定密碼保護(passphrase)。這樣的話,即使入侵者拿到私鑰,還是需要破解密碼。如果為了方便,不想設定密碼保護,可以直接按回車鍵,密碼就會為空。后面還會讓你再輸入一次密碼,兩次輸入必須一致。注意,這里“密碼”的英文單詞是 passphrase,這是為了避免與 linux 賬戶的密碼單詞 password 混淆,表示這不是用戶系統賬戶的密碼。

最后,就會生成私鑰和公鑰,屏幕上還會給出公鑰的指紋,以及當前的用戶名和主機名作為注釋,用來識別密鑰的來源。

公鑰文件和私鑰文件都是文本文件,可以用文本編輯器看一下它們的內容。公鑰文件的內容類似下面這樣。

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvpB4lUbAaEbh9u6HLig7amsfywD4fqSZq2ikACIUBn3GyRPfeF93l/
weQh702ofXbDydZAKMcDvBJqRhUotQUwqV6HJxqoqPDlPGUUyo8RDIkLUIPRyq
ypZxmK9aCXokFiHoGCXfQ9imUP/w/jfqb9ByDtG97tUJF6nFMP5WzhM= username@shell.isp.com

上面示例中,末尾的username@shell.isp.com是公鑰的注釋,用來識別不同的公鑰,表示這是哪臺主機(shell.isp.com)的哪個用戶(username)的公鑰,不是必需項。

博主在使用時刪除了末尾的注釋,親測可以使用

注意,公鑰只有一行。因為它太長了,所以上面分成三行顯示。

手動上傳公鑰

生成密鑰以后,公鑰必須上傳到服務器,才能使用公鑰登錄。

OpenSSH 規定,用戶公鑰保存在服務器的~/.ssh/authorized_keys文件。你要以哪個用戶的身份登錄到服務器,密鑰就必須保存在該用戶主目錄的~/.ssh/authorized_keys文件。只要把公鑰添加到這個文件之中,就相當于公鑰上傳到服務器了。每個公鑰占據一行。如果該文件不存在,可以手動創建。

用戶可以手動編輯該文件,把公鑰粘貼進去,也可以在本機計算機上,執行下面的命令。

$ cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

上面示例中,user@host要替換成你所要登錄的用戶名和主機名。

注意,authorized_keys文件的權限要設為644,即只有文件所有者才能寫。如果權限設置不對,SSH 服務器可能會拒絕讀取該文件。

$ chmod 644 ~/.ssh/authorized_keys

只要公鑰上傳到服務器,下次登錄時,OpenSSH 就會自動采用密鑰登錄,不再提示輸入密碼。

$ ssh -l username shell.isp.com
Enter passphrase for key '/home/you/.ssh/id_dsa': ************
Last login: Mon Mar 24 02:17:27 2014 from ex.ample.com
shell.isp.com>

上面例子中,SSH 客戶端使用私鑰之前,會要求用戶輸入密碼(passphrase),用來解開私鑰。

需要注意的是在Windows terminal中ssh-copy-id無法使用,只能手動上傳

密鑰創建示例

附上我的密鑰創建實例:

PS C:Usersadmin> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:Usersadmin/.ssh/id_rsa): C:UsersadminOneDrive/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
C:UsersadminOneDrive/.ssh/id_rsa.
Your public key has been saved in C:UsersadminOneDrive/.ssh/id_rsa.pub.
The key fingerprint is:
***
The key's randomart image is:
***
PS C:Usersadmin> cat C:UsersadminOneDrive/.ssh/id_rsa.pub
//此步顯示所創建的公鑰,復制所有內容

PS C:Usersadmin> ssh kerm@52.184.**.**
kerm@HK1:~$ sudo -i
root@HK1:~# mkdir -p ~/.ssh
root@HK1:~# nano ~/.ssh/authorized_keys
//將之前復制的公鑰貼入,我將=號后的內容刪除,因為有多臺設備利用這個公鑰登錄
root@HK1:~# chmod 644 ~/.ssh/authorized_keys

備注:為了實現多端同步免密登錄,這里我密鑰的存儲位置選為了OneDrive同步文件夾。這樣雖然不安全,但是很方便。

將登錄信息寫入配置文件,一鍵登錄

也可以直接編輯配置文件。新版既然已經提供GUI,我就直接在GUI操作了。

導航欄下拉進入設置-配置文件-添加新配置文件-新建空配置文件。在命令行一欄填入:

ssh -i 密鑰路徑 user@ip
示例:
ssh -i C:UsersadminOneDrive/.ssh/id_rsa root@52.184.***.**

其他參數,例如名稱、外觀可以參照另外一篇文章進行自定義。這里不做贅述。

保存,導航欄下拉找到對應配置名稱即可一鍵連接。也可以使用快捷鍵:

Windows Terminal:SSH連接遠程服務器

 

效果

同步問題

理論上是可以多端同步的,但是目前我兩臺電腦上的配置還沒有同步,不知道為什么。

附錄

參考文章

  1. Settings synchronization · Issue #1721 · microsoft/terminal (github.com)
  2. SSH 密鑰登錄 - SSH 教程 - 網道 (wangdoc.com)

版權信息

本文原載于kermsite.com,復制請保留原文出處。

分享到:
標簽:連接 SSH
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定