色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Linux上如何配置基于密鑰認證的SSH?

5RJg_mcuworld ? 來源:未知 ? 作者:胡薇 ? 2018-10-09 17:28 ? 次閱讀

眾所周知,Secure Shell,又稱SSH,是允許你通過無安全網絡(例如 Internet)和遠程系統之間安全訪問/通信的加密網絡協議。無論何時使用 SSH 在無安全網絡上發送數據,它都會在源系統上自動地被加密,并且在目的系統上解密。SSH 提供了四種加密方式,基于密碼認證,基于密鑰認證,基于主機認證和鍵盤認證。最常用的認證方式是基于密碼認證和基于密鑰認證。

在基于密碼認證中,你需要的僅僅是遠程系統上用戶的密碼。如果你知道遠程用戶的密碼,你可以使用ssh user@remote-system-name訪問各自的系統。另一方面,在基于密鑰認證中,為了通過 SSH 通信,你需要生成 SSH 密鑰對,并且為遠程系統上傳 SSH 公鑰。每個 SSH 密鑰對由私鑰與公鑰組成。私鑰應該保存在客戶系統上,公鑰應該上傳給遠程系統。你不應該將私鑰透露給任何人。希望你已經對 SSH 和它的認證方式有了基本的概念。

這篇教程,我們將討論如何在 Linux 上配置基于密鑰認證的 SSH。

在 Linux 上配置基于密鑰認證的 SSH

為方便演示,我將使用 Arch Linux 為本地系統,Ubuntu 18.04 LTS 為遠程系統。

本地系統詳情:

OS: Arch Linux Desktop

IP address: 192.168.225.37/24

遠程系統詳情:

OS: Ubuntu 18.04 LTS Server

IP address: 192.168.225.22/24

本地系統配置

就像我之前所說,在基于密鑰認證的方法中,想要通過 SSH 訪問遠程系統,需要將公鑰上傳到遠程系統。公鑰通常會被保存在遠程系統的一個~/.ssh/authorized_keys文件中。

注意事項:不要使用root用戶生成密鑰對,這樣只有 root 用戶才可以使用。使用普通用戶創建密鑰對。

現在,讓我們在本地系統上創建一個 SSH 密鑰對。只需要在客戶端系統上運行下面的命令。

$ ssh-keygen

上面的命令將會創建一個 2048 位的 RSA 密鑰對。你需要輸入兩次密碼。更重要的是,記住你的密碼。后面將會用到它。

樣例輸出:

如果你已經創建了密鑰對,你將看到以下信息。輸入 y 就會覆蓋已存在的密鑰。

/home/username/.ssh/id_rsa alreadyexists.

Overwrite(y/n)?

請注意密碼是可選的。如果你輸入了密碼,那么每次通過 SSH 訪問遠程系統時都要求輸入密碼,除非你使用了 SSH 代理保存了密碼。如果你不想要密碼(雖然不安全),簡單地敲兩次回車。不過,我建議你使用密碼。從安全的角度來看,使用無密碼的 ssh 密鑰對不是什么好主意。這種方式應該限定在特殊的情況下使用,例如,沒有用戶介入的服務訪問遠程系統。(例如,用 rsync 遠程備份……)

如果你已經在個人文件 ~/.ssh/id_rsa 中有了無密碼的密鑰,但想要更新為帶密碼的密鑰。使用下面的命令:

$ ssh-keygen -p -f ~/.ssh/id_rsa

樣例輸出:

Enternewpassphrase(emptyfornopassphrase):

Enter same passphraseagain:

Your identification has been saved with thenewpassphrase.

現在,我們已經在本地系統上創建了密鑰對。接下來,使用下面的命令將 SSH 公鑰拷貝到你的遠程 SSH 服務端上。

$ ssh-copy-id sk@192.168.225.22

在這里,我把本地(Arch Linux)系統上的公鑰拷貝到了遠程系統(Ubuntu 18.04 LTS)上。從技術上講,上面的命令會把本地系統 ~/.ssh/id_rsa.pub 文件中的內容拷貝到遠程系統 ~/.ssh/authorized_keys 中。明白了嗎?非常棒。

輸入 yes 來繼續連接你的遠程 SSH 服務端。接著,輸入遠程系統用戶 sk 的密碼。

如果你已經拷貝了密鑰,但想要替換為新的密碼,使用 -f 選項覆蓋已有的密鑰。

$ ssh-copy-id -f sk@192.168.225.22

我們現在已經成功地將本地系統的 SSH 公鑰添加進了遠程系統。現在,讓我們在遠程系統上完全禁用掉基于密碼認證的方式。因為我們已經配置了密鑰認證,因此不再需要密碼認證了。

在遠程系統上禁用基于密碼認證的 SSH

你需要在 root 用戶或者 sudo 執行下面的命令。

禁用基于密碼的認證,你需要在遠程系統的終端里編輯 /etc/ssh/sshd_config 配置文件:

$ sudo vi /etc/ssh/sshd_config

找到下面這一行,去掉注釋然后將值設為 no:

PasswordAuthentication no

重啟 ssh 服務讓它生效。

$ sudo systemctl restart sshd

從本地系統訪問遠程系統

在本地系統上使用命令 SSH 你的遠程服務端:

$ ssh sk@192.168.225.22

輸入密碼。

樣例輸出:

現在,你就能 SSH 你的遠程系統了。如你所見,我們已經使用之前 ssh-keygen 創建的密碼登錄進了遠程系統的賬戶,而不是使用當前賬戶實際的密碼。

如果你試圖從其它客戶端系統 ssh(遠程系統),你將會得到這條錯誤信息。比如,我試圖通過命令從 CentOS SSH 訪問 Ubuntu 系統:

樣例輸出:

如你所見,除了 CentOS(LCTT 譯注:根據上文,這里應該是 Arch)系統外,我不能通過其它任何系統 SSH 訪問我的遠程系統 Ubuntu 18.04。

為 SSH 服務端添加更多客戶端系統的密鑰

這點非常重要。就像我說過的那樣,除非你配置過(在之前的例子中,是 Ubuntu),否則你不能通過 SSH 訪問到遠程系統。如果我希望給更多客戶端予以權限去訪問遠程 SSH 服務端,我應該怎么做?很簡單。你需要在所有的客戶端系統上生成 SSH 密鑰對并且手動拷貝 ssh 公鑰到想要通過 ssh 訪問的遠程服務端上。

在客戶端系統上創建 SSH 密鑰對,運行:

$ ssh-keygen

輸入兩次密碼。現在,ssh 密鑰對已經生成了。你需要手動把公鑰(不是私鑰)拷貝到遠程服務端上。

使用以下命令查看公鑰:

$ cat ~/.ssh/id_rsa.pub

應該會輸出類似下面的信息:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCt3a9tIeK5rPx9p74/KjEVXa6/OODyRp0QLS/sLp8W6iTxFL+UgALZlupVNgFjvRR5luJ9dLHWwc+d4umavAWz708e6Na9ftEPQtC28rTFsHwmyLKvLkzcGkC5+A0NdbiDZLaK3K3wgq1jzYYKT5k+IaNS6vtrx5LDObcPNPEBDt4vTixQ7GZHrDUUk5586IKeFfwMCWguHveTN7ykmo2EyL2rV7TmYq+eY2ZqqcsoK0fzXMK7iifGXVmuqTkAmZLGZK8a3bPb6VZd7KFum3Ezbu4BXZGp7FVhnOMgau2kYeOH/ItKPzpCAn+dg3NAAziCCxnII9b4nSSGz3mMY4Y7 ostechnix@centosserver

拷貝所有內容(通過 USB 驅動器或者其它任何介質),然后去你的遠程服務端的終端,像下面那樣,在 $HOME 下創建文件夾叫做 .ssh。你需要以 root 身份執行命令(注:不一定需要 root)。

$ mkdir -p ~/.ssh

現在,將前幾步創建的客戶端系統的公鑰添加進文件中。

echo {Your_public_key_contents_here} >> ~/.ssh/authorized_keys

在遠程系統上重啟 ssh 服務。現在,你可以在新的客戶端上 SSH 遠程服務端了。

如果覺得手動添加 ssh 公鑰有些困難,在遠程系統上暫時性啟用密碼認證,使用 ssh-copy-id 命令從本地系統上拷貝密鑰,最后禁用密碼認證。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11292

    瀏覽量

    209325
  • SSH
    SSH
    +關注

    關注

    0

    文章

    188

    瀏覽量

    16335

原文標題:如何在 Linux 中配置基于密鑰認證的 SSH?

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    [10.2.1]--為SSH服務器配置密鑰認證登錄

    Linux
    jf_75936199
    發布于 :2023年02月25日 03:31:49

    Linux配置SFTP服務

    ,由于這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網絡安全性要求更高時,可以使用SFTP代替FTP。SFTPLinux配置查看
    發表于 07-04 06:24

    GitHub帳戶使用新的(或現有的)SSH密鑰

    要在 GitHub.com 配置帳戶以使用新的(或現有的)SSH 密鑰,還需要將密鑰添加到帳戶。
    發表于 06-22 16:36

    【觸覺智能 Purple Pi OH 開發板體驗】無網絡狀態連接ssh解決辦法

    ] --------- 無網絡狀態連接ssh解決辦法 有多種連接SSH的方式,以下是其中一些常見的方式: 終端命令行連接: 終端命令行中,使用ssh命令加上目標主機的IP地址或域名,
    發表于 08-20 12:38

    利用SSH密鑰對建立安全通道

    SSH 由于其安全性逐漸成為TELNET、FTP 等網絡管理工具的替代品,利用SSH密鑰對生成功能可在客戶機與遠程系統之間建立一條安全通道,從而實現數據傳輸的安全性。傳統的網絡
    發表于 07-30 11:17 ?16次下載

    如何在Linux檢查SSH的版本?

    安全Shell(SSH)通過加密的安全通信通道來遠程登錄或者遠程執行命令。SSH被設計來替代不安全的明文協議,如telnet、rsh和rlogin。SSH提供了大量需要的特性,如認證
    發表于 05-13 09:41 ?1657次閱讀

    Linux保護 SSH 服務器連接的方法

    SSH 是一種廣泛使用的協議,用于安全地訪問 Linux 服務器。大多數用戶使用默認設置的 SSH 連接來連接到遠程服務器。
    的頭像 發表于 08-08 09:55 ?932次閱讀

    你知道SSH密鑰認證是如何工作的嗎

    遠程登錄Linux除了可以使用用戶名密碼認證外,我們還可以通過密鑰認證。也許你對如何配置密鑰
    的頭像 發表于 01-31 13:31 ?927次閱讀

    SSH是什么?

    SSH(secure shell)是一種網絡協議,用于不同主機之間的加密通信。1995年被設計出來,現已成為Linux系統的標準配置
    的頭像 發表于 02-15 14:05 ?3864次閱讀

    如何修改Linux系統的SSH端口

    SSH 是一種網絡協議,用于與 Linux 系統進行遠程安全通信。默認情況下,SSH 服務使用端口 22。
    的頭像 發表于 03-20 16:46 ?2471次閱讀

    Linux保護SSH服務器連接的8種方法

    SSH 是一種廣泛使用的協議,用于安全地訪問 Linux 服務器。大多數用戶使用默認設置的 SSH 連接來連接到遠程服務器。但是,不安全的默認配置也會帶來各種安全風險。
    的頭像 發表于 04-03 09:37 ?922次閱讀

    如何使用無密碼SSH密鑰登錄遠程Linux服務器

    SSH -keygen命令允許通過RSA、ECDSA和ED25519算法生成SSH密鑰對。RSA得到了廣泛的使用和最好的支持,而ED25519提供了更好的安全性和良好的性能。
    的頭像 發表于 04-10 10:31 ?1591次閱讀

    什么是SSH密鑰?如何使用SSH密鑰

    SSH密鑰是用戶名和密碼的替代方法,是一種用戶身份驗證方法。它主要用于向服務提供加密文件而不是基于文本的密碼。
    的頭像 發表于 05-04 09:04 ?5587次閱讀
    什么是<b class='flag-5'>SSH</b><b class='flag-5'>密鑰</b>?如何使用<b class='flag-5'>SSH</b><b class='flag-5'>密鑰</b>?

    Linux中常用的6種SSH身份驗證方法

    SSH(Secure Shell)是一種網絡協議,用于不安全的網絡安全地運行網絡服務。 Linux 中,
    的頭像 發表于 05-12 14:42 ?3084次閱讀

    怎么用SSH密鑰登陸vps?

    使用SSH密鑰登錄VPS(Virtual Private Server)是一種更安全和方便的方式,相比使用密碼,SSH密鑰更難被破解。以下是
    的頭像 發表于 02-20 16:29 ?1140次閱讀
    主站蜘蛛池模板: 桃色园社区| 久久久久久久久a免费| 名女躁b久久天天躁| 精品96在线观看影院| 国产女高清在线看免费观看| 国产AV国片精品无套内谢无码| chinese东北老年tv视频| 18岁男人女人插孔| 十次啦中文网| 色狠狠一区二区| 特级毛片AAAAAA| 午夜免费啪视频观看视频 | 澳大利亚剧满足在线观看| 99久久精品国产国产毛片| 95国产精品人妻无码久| 中文字幕在线视频观看| 做暧暧免费30秒体验| 99精品AV无码一区二区| 99亚洲精品| 邓奴的视频IVK| 国产精品99久久久久久AV色戒 | 337p欧洲亚大胆精品| 最近中文字幕2018MV高清在线| 52av我爱| 不卡的在线AV网站| 欧美白妞大战非洲大炮| 女人久久WWW免费人成看片| 热久久综合这里只有精品电影| 日本无翼恶漫画大全优优漫画 | 久久精品一卡二卡三卡四卡视频版| 久久视频这里只精品99re8久| 美国一级黄色| 日本又黄又爽又色又刺激的视频| 无遮掩H黄纯肉动漫在线观看星| 亚洲精品视频免费观看| 中文在线免费看视频| xxx日本高清视频hd| 国产99久久九九免费精品无码 | 国产99久久久国产精品免费看| 国产乱码卡二卡三卡4W| 久久re6热在线视频|