基於Xshell使用密鑰方式連接遠程主機,具體內容如下
連接遠程主機,就驗證身份而言,一般有兩種方式,一種是通過用戶密碼;另一種通過公鑰的方式(Public Key)。
圖1、xshell支持驗證登錄用戶的方式
下面就使用Public Key的方式來實現連接,通過工具ssh-kengen生成密鑰對。
注意:操作之前需要ping通本機和目的主機(如果ping不通,可能的原因是防火牆、SELinux沒關閉,或者網關設置有問題等)
使用XShell,這里使用的是XShell manager 5,目的主機為CentOS6,將需要連接的遠程主機稱為目的主機。
目的主機安裝ssh服務端,並開啟
1
2
3
4
5
6
|
[root@node1 ~]$ yum
install
-y openssh-server
# 安裝openssh服務端
[root@node1 ~]$ yum
install
-y openssh-clients
#安裝openssh客戶端,可以不安裝
[root@node1 ~]$ service sshd start
# 臨時開啟sshd服務
[root@node1 ~]$ chkconfig sshd on
# 永久開啟sshd服務,服務器重啟也生效
[root@node1 ~]$service sshd status
# 查看sshd服務運行狀態
openssh-daemon (pid 1384) 正在運行...
# 顯示正在運行
|
生成ssh密鑰對(包括私鑰和公鑰)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@node1 ~]$ (
umask
0077;
ssh
-keygen)
# 生成ssh密鑰對,並將權限設置為600
Generating public
/private
rsa key pair.
Enter
file
in
which
to save the key (
/root/
.
ssh
/id_rsa
):
# 回車
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:
fd:72:10:50:a6:7d:83:c7:93:d2:26:3d:12:0e:38:2f root@node1
The key's randomart image is:
+--[ RSA 2048]----+
| .o.+ |
| o B * . |
| o. O % |
| E .. O + |
| .S o |
| o |
| . o |
| o |
| |
+-----------------+
[root@node1 ~]$
cd
.
ssh
/
[root@node1 .
ssh
]$ ll
# 查看密鑰/公鑰對信息,權限都為600
總用量 8
-rw-------. 1 root root 1675 5月 21 14:26 id_rsa
# 私鑰
-rw-------. 1 root root 392 5月 21 14:26 id_rsa.pub
# 公鑰
[root@node1 .
ssh
]$
|
修改sshd連接配置文件vim /etc/ssh/sshd_config
1
2
3
|
PasswordAuthentication no
# 不允許密碼驗證登錄
PubkeyAuthentication
yes
# 允許公鑰驗證登錄
AuthorizedKeysFile .
ssh
/id_rsa
.pub
# 指定公鑰文件路徑
|
將ssh密鑰對導出到本機,建議創建一個目錄專用放置密鑰對
1
2
|
#]sz id_rsa
#]sz id_rsa.pub
|
重載sshd服務
1
2
|
[root@node1 .
ssh
]$ service sshd reload
重新載入 sshd: [確定]
|
使用XShell連接
1
|
ssh
root@IP
|
圖2、選擇密鑰文件
圖3、導入私鑰並確定
注意:點擊確定之后還要重新連接一次
圖4、連接成功
客戶端使用私鑰去驗證,而遠程主機使用公鑰驗證。