日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ssh证书登录(实例详解)

發(fā)布時(shí)間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssh证书登录(实例详解) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

本文基于實(shí)際Linux管理工作,實(shí)例講解工作中使用ssh證書(shū)登錄的實(shí)際流程,講解ssh證書(shū)登錄的配置原理,基于配置原理,解決實(shí)際工作中,windows下使用SecureCRT證書(shū)登錄的各種問(wèn)題,以及實(shí)現(xiàn)hadoop集群部署要求的無(wú)密碼跳轉(zhuǎn)問(wèn)題。

ssh有密碼登錄和證書(shū)登錄,初學(xué)者都喜歡用密碼登錄,甚至是root賬戶登錄,密碼是123456。但是在實(shí)際工作中,尤其是互聯(lián)網(wǎng)公司,基本都是證書(shū)登錄的。內(nèi)網(wǎng)的機(jī)器有可能是通過(guò)密碼登錄的,但在外網(wǎng)的機(jī)器,如果是密碼登錄,很容易受到攻擊,真正的生產(chǎn)環(huán)境中,ssh登錄都是證書(shū)登錄。

原則:你想不用密碼登錄某臺(tái)主機(jī),將你自己的公鑰給他,讓他添加到~/.ssh/authorized_keys,即可。

cat id_rsa.pub >>?authorized_keys

證書(shū)登錄的步驟

1.客戶端生成證書(shū):私鑰和公鑰,然后私鑰放在客戶端,妥當(dāng)保存,一般為了安全,訪問(wèn)有黑客拷貝客戶端的私鑰,客戶端在生成私鑰時(shí),會(huì)設(shè)置一個(gè)密碼,以后每次登錄ssh服務(wù)器時(shí),客戶端都要輸入密碼解開(kāi)私鑰(如果工作中,你使用了一個(gè)沒(méi)有密碼的私鑰,有一天服務(wù)器被黑了,你是跳到黃河都洗不清)。

2.服務(wù)器添加信用公鑰:把客戶端生成的公鑰,上傳到ssh服務(wù)器,添加到指定的文件中,這樣,就完成ssh證書(shū)登錄的配置了。

假設(shè)客戶端想通過(guò)私鑰要登錄其他ssh服務(wù)器,同理,可以把公鑰上傳到其他ssh服務(wù)器。

真實(shí)的工作中:員工生成好私鑰和公鑰(千萬(wàn)要記得設(shè)置私鑰密碼),然后把公鑰發(fā)給運(yùn)維人員,運(yùn)維人員會(huì)登記你的公鑰,為你開(kāi)通一臺(tái)或者多臺(tái)服務(wù)器的權(quán)限,然后員工就可以通過(guò)一個(gè)私鑰,登錄他有權(quán)限的服務(wù)器做系統(tǒng)維護(hù)等工作,所以,員工是有責(zé)任保護(hù)他的私鑰的,如果被別人惡意拷貝,你又沒(méi)有設(shè)置私鑰密碼,那么,服務(wù)器就全完了,員工也可以放長(zhǎng)假了。

客戶端建立私鑰和公鑰

在客戶端終端運(yùn)行命令

ssh-keygen -t rsa

rsa是一種密碼算法,還有一種是dsa,證書(shū)登錄常用的是rsa。

假設(shè)用戶是blue,執(zhí)行 ssh-keygen 時(shí),才會(huì)在我的home目錄底下的 .ssh/ 這個(gè)目錄里面產(chǎn)生所需要的兩把 Keys ,分別是私鑰 (id_rsa) 與公鑰 (id_rsa.pub)

另外就是私鑰的密碼了,如果不是測(cè)試,不是要求無(wú)密碼ssh,那么對(duì)于passphrase,不能輸入空(直接回車(chē)),要妥當(dāng)想一個(gè)有特殊字符的密碼。

ssh服務(wù)端配置

ssh服務(wù)器配置如下:

vim /etc/ssh/sshd_config #禁用root賬戶登錄,非必要,但為了安全性,請(qǐng)配置 PermitRootLogin no# 是否讓 sshd 去檢查用戶家目錄或相關(guān)檔案的權(quán)限數(shù)據(jù), # 這是為了擔(dān)心使用者將某些重要檔案的權(quán)限設(shè)錯(cuò),可能會(huì)導(dǎo)致一些問(wèn)題所致。 # 例如使用者的 ~.ssh/ 權(quán)限設(shè)錯(cuò)時(shí),某些特殊情況下會(huì)不許用戶登入 StrictModes no# 是否允許用戶自行使用成對(duì)的密鑰系統(tǒng)進(jìn)行登入行為,僅針對(duì) version 2。 # 至于自制的公鑰數(shù)據(jù)就放置于用戶家目錄下的 .ssh/authorized_keys 內(nèi) RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys#有了證書(shū)登錄了,就禁用密碼登錄吧,安全要緊 PasswordAuthentication no

配置好ssh服務(wù)器的配置了,那么我們就要把客戶端的公鑰上傳到服務(wù)器端,然后把客戶端的公鑰添加到authorized_keys

在客戶端執(zhí)行命令

scp ~/.ssh/id_rsa.pub blue@<ssh_server_ip>:~

在服務(wù)端執(zhí)行命令

cat id_rsa.pub >> ~/.ssh/authorized_keys

如果有修改配置/etc/ssh/sshd_config,需要重啟ssh服務(wù)器

/etc/init.d/ssh restart

?

客戶端通過(guò)私鑰登錄ssh服務(wù)器

ssh命令

ssh -i /blue/.ssh/id_rsa blue@<ssh_server_ip>

scp命令

scp -i /blue/.ssh/id_rsa filename blue@<ssh_server_ip>:/blue

每次敲命令,都要指定私鑰,是一個(gè)很繁瑣的事情,所以我們可以把私鑰的路徑加入ssh客戶端的默認(rèn)配置里

修改/etc/ssh/ssh_config

#其實(shí)默認(rèn)id_rsa就已經(jīng)加入私鑰的路徑了,這里只是示例而已 IdentityFile ~/.ssh/id_rsa #如果有其他的私鑰,還要再加入其他私鑰的路徑 IdentityFile ~/.ssh/blue_rsa

不要提示是否是信任主機(jī):known_hosts:可以去啟動(dòng)時(shí)加上:-o 'StrictHostKeyChecking no' 或者 寫(xiě)入?/etc/ssh/ssh_config 配置文件

ssh -o 'StrictHostKeyChecking no' -R 22003:127.0.0.1:22 -N user@192.168.1.142

?

?

To get a host's base64 encoded key issue the command:

?

$ ssh-keyscan -t rsa,dsa hostname

?

Optionally you can specify -H to have the key displayed in the hashed form. -v increases verbosity.

?

To search for an entry in known_hosts issue:

?

$ ssh-keygen -H? -F hostname

?

You can also delete a single entry from known_hosts:

?

$ ssh-keygen -R hostname

?

More useful options include:

?

  • NoHostAuthenticationForLocalhost: Turn off host key checking for the local machine only. Useful if you set up SSH Port Forwards to remote machines, ala ssh -p 9999 localhost, but you need to live with the consequences. Better to use HostKeyAliases as appropriate.
  • HostKeyAlias: This option allows you to specify an 'alias' that will be used, instead of the actual hostname on the command line, when looking for a match in the known_hosts file. Particularly useful for commands that use ProxyCommands to connect, or are based on multiple ports on a machine that forward to different SSH servers behind it, such as a firewall.

?

其他應(yīng)用場(chǎng)景

?

SecureCRT密鑰key遠(yuǎn)連接程ssh證書(shū)登錄Linux

? 國(guó)內(nèi)大部分人用的系統(tǒng)是windows,而windows下有很多ssh客戶端圖形工作,最流行,功能最強(qiáng)大的就是SecureCRT了,所以我會(huì)單獨(dú)針對(duì)SecureCRT簡(jiǎn)單講下實(shí)現(xiàn)ssh證書(shū)登錄Linux的要點(diǎn),步驟如下:

? 1:在SecureCRT創(chuàng)建私鑰和公鑰:主菜單->工具->創(chuàng)建公鑰->選擇RSA->填寫(xiě)私鑰的密碼->密鑰長(zhǎng)度填為1024->點(diǎn)擊完成,生成兩個(gè)文件,默認(rèn)名為identity和identity.pub

? 2.把私鑰和公鑰轉(zhuǎn)換為OpenSSH格式:主菜單->工具->轉(zhuǎn)換私鑰到OpenSSH格式->選擇剛生成私鑰文件identity->輸入私鑰的密碼->生成兩個(gè)文件,指定為id_rsa,id_rsa.pub?

? 3.把公鑰id_rsa.pub上傳到ssh服務(wù)器,按照之前配置服務(wù)器端的證書(shū),再配置一次。

? 另外,如果你之前用windows的?SecureCRT的證書(shū)登錄linux的,有一天你換成了linux,并希望通過(guò)原來(lái)的私鑰登錄公司的服務(wù)器,那么可以把id_rsa拷貝倒~/.ssh/目錄下,配置ssh客戶端參考上文。

? 備注:ssh對(duì)證書(shū)的文件和目錄權(quán)限比較敏感,要么根據(jù)出錯(cuò)提示設(shè)置好文件和目錄權(quán)限,要么是把StrictModes選項(xiàng)設(shè)置為no

hadoop部署的無(wú)密碼ssh登錄

hadoop要求master要無(wú)密碼跳轉(zhuǎn)到每個(gè)slave,那么master就是上文中的ssh客戶端了,步驟如下

? ?在hadoop master上,生成公鑰私鑰,這個(gè)場(chǎng)景下,私鑰不能設(shè)置密碼。

? ?把公鑰上傳到每個(gè)slave上指定的目錄,這樣就完成了ssh的無(wú)密碼跳轉(zhuǎn)了。

總結(jié)

ssh證書(shū)登錄,在實(shí)際工作才是最常用的登錄方式,本人結(jié)合了真正工作的場(chǎng)景普及了ssh證書(shū)登錄的知識(shí),并根據(jù)流行的hadoop部署和windows下最常用的SecureCRT實(shí)例講解了證書(shū)登錄。

總結(jié)

以上是生活随笔為你收集整理的ssh证书登录(实例详解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。