背景:
連接工具Xshell 6
目標服務器系統centOS7.3
本地系統windows
一、配置遠程連接
1、ssh配置
//打開ssh配置文件
vi /etc/ssh/ssh_config
按需配置,也可關閉root用戶登錄,將權限所屬用戶改爲普通用戶進行登錄
#關閉密碼登錄
PasswordAuthentication no
#允許root認證登錄
PermitRootLogin yes
#允許RSA數字簽名
RSAAuthentication yes
#允許公鑰登錄
PubkeyAuthentication yes
#默認公鑰存放的位置
AuthorizedKeysFile .ssh/authorized_keys
2、權限配置
cd ~
//更改.ssh文件所有者爲root(一般就是root)
l. -ls
chown root:root ~/.ssh
//.ssh目錄權限一般爲755或者700。僅root用戶能進行寫操作
chmod 700 ~/.ssh
//更改所屬,配置自己可讀可執行,其他用戶僅可讀
chown root:root ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
3、windows本地生成公鑰
名字隨意,可以再給密鑰加密,是對本地密鑰的保護。
複製公鑰,然後點擊完成即可。
4、複製進要連接主機的authorized_keys中。
cd ~/.ssh
vi authorizedd_keys
5、連接
密鑰選擇剛纔生成的那個,密碼是剛纔生成公鑰時設的密碼,不是root密碼注意
就搞定啦
那如果沒有呢?可能是你開啓了防火牆,而防火牆又沒有開放22端口。
在3.4.2https://blog.csdn.net/xiedongze__/article/details/90714356
二、原理
關於authorized_keys、id_rsa、id_rsa.pub和kown_hosts,瞭解這些文件的作用和功能後,就會明白上面這麼操作的原因。
什麼是公鑰和私鑰?
一般生成密鑰是成對生成的,一個是公鑰一個是私鑰,私鑰的作用是對公鑰進行解密(嚴格保管),公鑰則是對信息進行加密,當使用和私鑰配對的公鑰(加密方式)進行加密時,再用私鑰對得到的信息進行解密。結果很明顯,加密前和解密後答案一致,完成交互,即遠程連接。
如何使用?
只需要將公鑰放入要連接的系統B中即可,連接時會自動與本地的對於目錄下的私鑰進行匹配。
id_rsa和id_rsa.pub?
id_rsa和id_rsa.pub是相對的本機A生成的密鑰對,前者是私鑰後者是公鑰。
如何使用?
當連接遠程服務器B時,把id_rsa.pub放到遠程服務器B的authorized_keys中即可。
有個最常見的例子就是:本地或者多人合作git上一個項目,就需要生產密鑰,將id_rsa.pub放進github官網的ssh配置項。
authorized_keys?
存放其他機器的公鑰,其他機器使用私鑰進行訪問,進行認證連接。
know_hosts?
ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會覈對公鑰。如果公鑰不同,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。
簡單來說就是同一臺機器多個系統多個公鑰訪問同一個服務器,服務器的OpenSSH會發出警告。
什麼是SSH2?
簡單說,SSH是一種網絡協議,用於計算機之間的加密登錄。
X shell6軟件?
Xshell是一個軟件,是一個強大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協議等。