CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
密鑰登錄步驟(免密碼登錄)
ssh登錄提供兩種認(rèn)證方式:口令(密碼)認(rèn)證方式和密鑰認(rèn)證方式。其中口令(密碼)認(rèn)證方式是我們最常用的一種,出于安全方面的考慮,介紹密鑰認(rèn)證方式登錄到linux/unix的方法。
使用密鑰登錄分為3步:
1、生成密鑰(公鑰與私鑰);
2、放置公鑰到服務(wù)器~/.ssh/authorized_key文件中;
3、配置ssh客戶端使用密鑰登錄。
---------------------
一、通過ssh-keygen命令生成密鑰對(duì),密鑰類型為RSA,也可以通過其他軟件生產(chǎn)密鑰對(duì)。
==========================================================================
pipci@ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pipci/.ssh/id_rsa):??????????? <==這里輸入私鑰名,直接回車就可以名字就為括號(hào)中默認(rèn)的名字
Enter passphrase (empty for no passphrase):?????????????????????????????? <==輸入密碼,自動(dòng)登錄設(shè)置為空,直接回車就可以??????????????????????? ?
Enter same passphrase again:????????????????????????????????????????????? <==輸入確認(rèn)密碼,直接回車就可以
Your identification has been saved in /home/pipci/.ssh/id_rsa.??????????? <==生成的私鑰名和位置
Your public key has been saved in /home/pipci/.ssh/id_rsa.pub.??????????? <==生成的公鑰名和位置
The key fingerprint is:
SHA256:Hsi5oo0Yr1a9eXtgNeLlu/UAJx1EiH34Gghv96FeXEs pipci@ubuntu
The key's randomart image is:
+---[RSA 2048]----+?????????????????????????????????????????????????????? <==密鑰的位數(shù)
|??????? o +o???? |
|???? . . +..???? |
|????? o . o.???? |
|???? . B *.o.E?? |
|??? . * SoBo+ .? |
|?? . . * =++ .?? |
|. . . = + oo???? |
| = + + . +. o??? |
|+.+ . ..o..? .?? |
+----[SHA256]-----+
pipci@ubuntu:~$
===================================================================
查看生成的密鑰文件:
===================================================================
pipci@ubuntu:~$ ls -l .ssh/
-rw------- 1 pipci pipci 1679 10月 19 11:45 id_rsa
-rw-r--r-- 1 pipci pipci? 394 10月 19 11:45 id_rsa.pub
pipci@ubuntu:~$
===================================================================
注意兩點(diǎn):
1、生成密鑰對(duì)輸入密碼的作用是保護(hù)本地私有密鑰的密碼,也就是說,即使有人到用了你的計(jì)算機(jī)或私鑰文件,沒有這個(gè)密碼依然不能使用你的私鑰,在使用密鑰登錄時(shí)候也會(huì)要求你輸入密碼,這個(gè)密碼就是生成密鑰對(duì)時(shí)候輸入的密碼,用來解鎖私鑰文件,密碼最低5個(gè)字符。
2、生成密鑰對(duì)的私鑰權(quán)限必須是600公鑰權(quán)限是644,即只能本人可以查看私鑰文件,除了本人以外的任何用戶都不能產(chǎn)看,別人可以查看也就意味著任何人都可以通過這個(gè)私鑰登錄了,顯然這是不安全的,公鑰可以隨便查看,但是不能修改內(nèi)容,修改了還怎么配對(duì)登錄。同時(shí)密鑰對(duì)的父目錄.ssh的權(quán)限必須是700即只有本人可以查看和進(jìn)入。如果是通過命令新創(chuàng)建的.ssh默認(rèn)就是700權(quán)限,創(chuàng)建完查看下就可以,如果不是更改權(quán)限。如果不是上面說的權(quán)限,客戶端登錄時(shí)候可能會(huì)出錯(cuò)。
二、通過scp命令將id_rsa.pub公鑰文件復(fù)制到遠(yuǎn)程服務(wù)器:
====================================================================
pipci@ubuntu:~$ scp /home/pipci/.ssh/id_rsa.pub? laopi@192.168.1.166:/home/laopi/.ssh/
laopi@192.168.1.166's password:
id_rsa.pub??????????????????????????????????? 100%? 394???? 0.4KB/s?? 00:00?? ?
pipci@ubuntu:~$
=====================================================================
通過scp命令復(fù)制,前提是遠(yuǎn)程服務(wù)器已經(jīng)開啟ssh密碼登錄,將公鑰文件復(fù)制到用來管理用戶主目錄下面的.ssh目錄如果不存在先創(chuàng)建這個(gè)目錄。這個(gè).ssh的目錄權(quán)限
必須設(shè)置成700要不然登錄會(huì)提示沒有權(quán)限的錯(cuò)誤,上面的例子遠(yuǎn)程服務(wù)器的ip地址為192.168.1.166用戶名為laopi(普通用戶)
三、遠(yuǎn)程服務(wù)器的配置
1、將上傳的公鑰文件導(dǎo)成或重命名成authorized_keys文件或
[laopi@CentOS ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys??? #導(dǎo)成
2、編輯ssh的配置文件。
vim /etc/ssh/sshd_config
要確保下面這兩項(xiàng)目前面沒有#使之生效
---------------------------------------------------------------
PubkeyAuthentication yes????????????????????? #允許公鑰認(rèn)證?????????????????? ?
AuthorizedKeysFile .ssh/authorized_keys?????? #指定包含用于用戶身份驗(yàn)證的公鑰的文件
---------------------------------------------------------------
為了安全考慮禁用root賬戶登錄
PermitRootLogin no??????????????????????????? #選項(xiàng)前面可以加#號(hào)注釋掉,同樣會(huì)禁用root用戶
有了證書登錄了,就禁用密碼登錄吧,安全要緊
PasswordAuthentication no???????????????????? #選項(xiàng)前面可以加#號(hào)注釋掉,同樣會(huì)禁用密碼登錄
重啟一下ssh服務(wù),這樣ssh配置才能生效:
[root@CentOS ~]# service sshd restart
四、ssh-keygen 命令常用參數(shù)
$ ssh-keygen 參數(shù)
常用參數(shù):
-t 指定要?jiǎng)?chuàng)建的密鑰類型,如:-t dsa(SSH-2) | ecdsa | ed25519 | rsa(SSH-2)| rsa1(SSH-1)
-b bits 指定密鑰長(zhǎng)度。對(duì)于 RSA 密鑰,最小要求 768 位,默認(rèn)是 2048 位
-C comment 提供一個(gè)注釋。
-N new_passphrase 提供一個(gè)新的密語。
-F hostname
在 known_hosts 文件中搜索指定的 hostname ,并列出所有的匹配項(xiàng)。 這個(gè)選項(xiàng)主要用于查找散列過的主機(jī)名/ip地址,還可以和 -H 選項(xiàng)聯(lián)用打印找到的公鑰的散列值。
-H 對(duì) known_hosts 文件進(jìn)行散列計(jì)算。這將把文件中的所有主機(jī)名/ip地址替換為相應(yīng)的散列值。原來文件的內(nèi)容將會(huì)添加一個(gè)".old"后綴后保存。這些散列值只能被 ssh 和 sshd 使用。這個(gè)選項(xiàng)不會(huì)修改已經(jīng)經(jīng)過散列的主機(jī)名/ip地址,因此可以在部分公鑰已經(jīng)散列過的文件上安全使用。
-R hostname
從 known_hosts 文件中刪除所有屬于 hostname 的密鑰。這個(gè)選項(xiàng)主要用于刪除經(jīng)過散列的主機(jī)(參見 -H 選項(xiàng))的密鑰。
-f filename 指定密鑰文件名
-l 顯示公鑰文件的指紋數(shù)據(jù)。它也支持 RSA1 的私鑰。對(duì)于 RSA 和 DSA 密鑰,將會(huì)尋找對(duì)應(yīng)的公鑰文件,然后顯示其指紋數(shù)據(jù)。
1、查看id_rsa.pub的公鑰指紋
pipci@ubuntu:~$ ssh-keygen -lf .ssh/id_rsa.pub
2048 SHA256:Hsi5oo0Yr1a9eXtgNeLlu/UAJx1EiH34Gghv96FeXEs pipci@ubuntu (RSA)
1、用 md5 的方式查看指紋數(shù)據(jù)
pipci@ubuntu:~$ ssh-keygen -E md5 -lf .ssh/id_rsa.pub
2048 MD5:fa:ba:4b:35:18:7f:5f:94:f0:6b:b5:7a:89:98:f9:a5 pipci@ubuntu (RSA)
轉(zhuǎn)載于:https://www.cnblogs.com/pipci/p/9819921.html
總結(jié)
以上是生活随笔為你收集整理的CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提供用户接口
- 下一篇: 记录Elastic Job服务处于下线状