1. 程式人生 > >Linux下快速配置SSH免密碼登入

Linux下快速配置SSH免密碼登入

有機器A(192.168.221.128),B(192.168.221.129)。現想A和B想要通過SSH免密碼登入。

安裝openssh

首先我們需要先檢視本機是否已安裝openssh伺服器(openssh-server)或者客戶端(openssh-clients),我們可以通過rpm命令和grep命令查詢,在此之前我們要區分伺服器和客戶端的區別

  • 伺服器(openssh-server):控制端,可控制安裝客戶端的主機
  • 客戶端(openssh-clients):被控制端,可被伺服器端控制

[[email protected] ~]# rpm -qa|grep openssh
openssh-6.6.1p1-22.el7.x86_64
openssh-clients-6.6.1p1-22.el7.x86_64
openssh-server-6.6.1p1-22.el7.x86_64

此處可以看到我們這臺主機伺服器和客戶端都安裝了,也就意味著我們可以通過SSH控制別人的主機,別人也可以通過SSH控制我的主機
那如果本機沒有安裝openssh呢,沒事,通過yum命令即可

[[email protected] ~]# yum install openssh

這樣就可以了。
然後通過service sshd start 命令即可啟動服務

[[email protected] ~]# service sshd start
Redirecting to /bin/systemctl start sshd.service

出現以上提示即表明啟動成功
注意:只要想通過SSH免密碼登入的主機都要安裝openssh

生成密匙

服務啟動成功,我們就可以來生成密匙了,因為我們如果想要SSH免密碼登入,那麼我們必須要先有密碼,我們可以通過ssh-keygen命令來生成密碼

[[email protected] ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
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:
f2:64:e8:ae:5d:7d:af:ea:0c:7a:7e:20:2e:e7:51:d2

[email protected]
The key’s randomart image is:
+–[ RSA 2048]—-+
| |
| |
| |
| o |
| + E |
| ..B.. |
| .o.+.. . |
| .oo+.o.. . |
| .==o.o+…. |
+—————–+

在打完ssh-keygen命令後一路回車就可以了
接下來我們開啟根目錄下的.ssh資料夾

[[email protected] ~]# cd .ssh
[[email protected] .ssh]# ll
總用量 16
-rw——-. 1 root root 410 5月 2 22:21 authorized_keys
-rw——-. 1 root root 1675 5月 2 22:19 id_rsa
-rw-r–r–. 1 root root 410 5月 2 22:19 id_rsa.pub
-rw-r–r–. 1 root root 177 5月 2 22:21 known_hosts

我們可以看到有兩個檔案分別是id_rsa和id_rsa.pub,他們一個是私鑰一個是公匙,在SSH免密碼登入的時候我們需要要到的是id_rsa.pub(公匙)。
注意:A和B都要生成密匙

新增公匙

我們此處的新增公匙是相當於遠端主機而言的,因為我們光產生密碼沒有用,必須要新增到遠端主機裡,這樣我們才可以通過SSH免密碼登入到遠端主機上,接下來我們看操作

[[email protected] 桌面]# ssh-copy-id 192.168.221.129
The authenticity of host ‘192.168.221.129 (192.168.221.129)’ can’t be established.
ECDSA key fingerprint is be:5c:73:c5:c9:33:6c:90:6b:06:82:46:d2:8d:b2:16.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed – if you are prompted now it is to install the new keys
[email protected]’s password:
Number of key(s) added: 1
Now try logging into the machine, with: “ssh ‘192.168.221.129’”
and check to make sure that only the key(s) you wanted were added.

我們通過ssh-copy-id 命令後面加指定的主機ip,就可以自動將我們的公匙賦值到指定的ip主機上了,這樣你就可以在本機遠端登入新增過公匙的主機了,前提是你必須在新增公匙的時候輸入遠端主機的密碼。
注意:A和B必須都要互相新增公匙

測試

[[email protected] 桌面]# ssh 192.168.221.129
Last login: Tue May 2 22:21:20 2017 from 192.168.221.128
[[email protected] ~]#

我們可以通過ssh命令並加上指定ip(必須要進行過上述步驟),登入到遠端主機,並且可以通過exit命令退出。