本地服務器搭建 二之 (服務器使用密鑰安全連接)

作者:@lxchinesszz
本文為作者原創,轉載請注明出處

緊接上文,上文的重點不是連接,而是如何在局域網中用廢棄的電腦搭建,是不是感覺很easy,那么這篇文章我們的重點就放在了安全上了,因為畢竟服務器是我們放應用或者數據庫的地方,安全性一定要可靠。小編是做Java開發的,一只熱愛技術的小菜鳥,因為工作中常常要一條龍服務,即,自己寫需求文檔,自己碼代碼,自己測試,自己部署,自己維護。雖然很累,但是很充實,很能提高自己。我也希望把自己的工作經驗分享出來,對那些想小編一樣熱愛技術的小伙,有所幫助。說半天廢話,下面開始。

  • 密鑰登錄原理:

    • 密鑰常是一對的,即公鑰和私鑰,將公鑰添加到服務器上的某個賬戶,然后客戶端連接的時候,使用私鑰完成認證就可以登錄
  • 小編我的兩個物理主機一臺虛擬主機和手機都是這樣連接起來的

A.使用私鑰登錄

1.制作密鑰對

  • 首先在服務器制作,需要的登錄賬戶,然后執行以下命令
[root@host ~]$ ssh-keygen   #建立密鑰對
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):  # 輸入密鑰鎖碼,或直接按 Enter 留空
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:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

2.安裝公鑰到服務端

  • 講公鑰安裝到服務器
[root@host ~]$ cd .ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys
  • 設置權限
[root@host .ssh]$ chmod 600 authorized_keys  #不讓其他用戶寫入 600 權限
[root@host .ssh]$ chmod 700 ~/.ssh           #讀寫執行的權限 700
  • ssh的配置文件都在/etc/ssh/ 里面

    [centos@localhost ~]$ cd /etc/ssh/
    [centos@localhost ssh]$ ls
     ssh_config #是客戶單配置的
     sshd_config #是服務端配置的
    
  • sshd_config中配置使用RSA登錄

    RSAAuthentication yes
    PubkeyAuthentication yes
    PermitRootLogin yes # 允許root用戶通過ssh登錄
    PasswordAuthentication no #不允許密碼登錄,只用使用私鑰登錄[一般我也用yes]
    
  • 最后服務端重啟 ssh

    [root@host .ssh]$ service sshd restart
    

3.操作客戶端

  • 3.1把服務端私鑰復制到客戶端,cat id_rsa,就是一下內容
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,A757691CABE05419

yvEX5nQY3+OeZ56kTt8i41YChrQgL9OwglA3SIU2ymrWvY+5IxXMOQbjJmoSFtRz
Or0lB1eWZx8ZimGdG+y9KoN4AkUzX+HqzaC8/eMczrv2KXP6DpOvV6MTdHoBrTb8
pJOSVzw1K1jmGPaCdWg3XJ7iNSdYr+FVHC6gmJhCCvSHjXLHYBseTSJNXzs4DpQr
rTAnU1NXVt0ce3R7DCO/hGClS5zeQ7j7fpQ48cwBgNJumCcr5eU/TWlUMKm7Q8Za
zLaugTg387qKaieFY6v8CvpqT4Oqt+j1+6B05sr2S4XiiWHdlcieG4fgSRc5I7kp
EhzZWM2LdK6NtxkbWVzd0ZOu5dZDIaMykC2KJJwT+NW3yKZvN1iebm7jzLC3Pv1B
dAqnzxMuwBVNbkvrmVWzi8+OvSfH3ttCoRVnshAAvPylBazAZpWn5k6f0QC8MkUQ
AIEFex80xBPJTT+L6HuijrO2Z1K6qeWe+ptUAqX3FrcuneH1Nn3MnOhNVb4HZvk0
xoy3/+2xe3sYKOUsMqjpWlI3DzGnZ81R8z1sTquRQy3hHDZ8cA6k1wUWoVTpJArb
CLphYurek+YN3kFGLhvKnd6YjnH3d2sq/qSIMp4m3T8iBkex5raf4iNpFwKzb3S9
D6QSWl9Nfnd2tAWkApXU4TPOcbX7XtX1P5yexyNxAZaUHuDsPStO/53WHfu8G2BP
nM2Pefaj1sUcODLK+4JR+edmtA9rjHXVx7Kd3OKRmpocmzYWgEOQJtklr+cL7SJJ
HzoKBjx0NB5/iW23KxSnj7gJhnrDbcD9wY5g63DuMsNnreMfk6trTbXe5ck/mfYN
6bTCXkVczm5Q8BKY0cJF2n/2dJyow9RFJtxDTzm11SvqdXtZoanC5mttePViu3J8
8dbNETFw0DwutyY3KPq3taX40Ps76Ahh6BTb5QD8ctxpYx63MOfQG/BrPFD9M6Al
l5YLzi1In3hc0s6GN2yvx/fdjNZpYFgxA0GH66evtlo3HMr/Id8zgZ+ZSikHMXpv
piXS4uBIgeCZeRaTbq/Bd2V2sN3ENQgV7UTVrnHDc5IWH+qpg8AZxnvmP6BBATNQ
2WAc6I10JqkrtfwjKuSYGyJmg6fY5uSKkZo9JQ1uviWEyhdKDhtYgStxyoIznrbJ
E7PQ3iE3VanB0zmhJHdFJ9xsy5yggMSnRfLCmLsXrczJX0ALwtCDGrrAR3wAg1fn
7WmdUfyfnAugJGOBMx25vOLASL3q5zKoxEr7ayln51uuWRE2oK63low68lcWt42a
S/ozMsev6Wg7QQjg7HRYEavYZGmCv9OBAblOmneUQjajT2F6zY1R4Cajkk3XmBO2
GHXJ685hTiBMQsGf81NMtGd2Zkd5jbcHYhfOe1TKRhgp9cxtzKuyzD2Hj5Bltw8P
q26JVqhLAXZpy73kVsCpU8KplyvZM349kM+VwzOwvvuoWuS+pi9iYYv2f4CjDWZ4
dfzg30+ekEc2QTwsZrYbG8SyIOn4oZSE+ygFNge/o2ftqwpRSwJhV8sUlrhBHQb/
plePpQQfRQlnifiqR/z2JQ4y28purVt5GKPuwsK4SpHCQTpXW3OkdA==
-----END RSA PRIVATE KEY-----
  • 把里面的內容復制(這個是我的)自己的文件下
1.你也可以把服務端的id_rsa 下載到你的客戶端,放在當前用戶的.ssh目錄下
2.也可以復制里面的內容然后再.ssh目錄下,重新創建一個id_rsa

vi ~/.ssh/id_rsa # 創建私鑰

4.直接可以登錄了【然后就會發現問題】

?  mac@MacBook-Air ~/.ssh ssh centos@192.168.1.112
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/mac/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/mac/.ssh/id_rsa": bad permissions
centos@192.168.1.112's password:

# 遇到這個問題一般就是權限問題 賦權700 ,然后就ok了
 mac@MacBook-Air ~/.ssh chmod 700 id_rsa
 mac@MacBook-Air ~/.ssh ssh centos@192.168.1.112
Enter passphrase for key '/Users/mac/.ssh/id_rsa':
Last login: Sun Feb 19 12:56:05 2017 from 192.168.1.113

B.設置安全端口

  • 默認使用22端口,這個在etc/ssh/ssh_config 就可以看到

我們可以不使用22端口,此時我們可以在服務器重新創建一個端口,然后使用防火墻屏蔽其他端口

  • 開啟端口

    • 開啟一個10222端口

      /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT   #寫入修改
       
      /etc/init.d/iptables save   #保存修改
       
      service iptables restart    #重啟防火墻,修改生效
      

      ?

  • 然后可以查看一下端口狀態

    • 查看的時候一定要用root用戶,否則查看不到的,所以我切換了10222 端口連接
    • 端口的知識屬于計算機的基礎知識,如果你能看到這里,說明你的基礎已經夠了,不過下面我會專門寫一篇關于底層的計算機的文章。
[centos@localhost ssh]$ su root
密碼:
[root@localhost ssh]# /etc/init.d/iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:10222
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:10222
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
4    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
5    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
7    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
  • 服務端在/etc/ssh/sshd_config 中監聽10222端口,然后就可以使用
ssh -p 10222 centos@192.168.1.112 
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、遠程連接服務器 遠程連接服務器對于管理員來說,是一個很有用的操作。它使得對服務器的管理更為方便。不過方便歸方便...
    Zhang21閱讀 39,593評論 0 20
  • SSH是安全的遠程登錄,使用SSH v2的協議版本,基于DH算法做密鑰交換,基于RSA或DSA實現身份認證。SSH...
    Yi_Feng閱讀 1,165評論 0 1
  • CA和證書安全協議(SSL/TLS)OpenSSH 一、CA和證書 (一) PKI(Public Key Infr...
    哈嘍別樣閱讀 1,427評論 0 0
  • 原文鏈接:提高Linux服務器安全歡迎訪問我的博客 雖然Linux已經很安全了,但是如果密碼設置的不夠復雜,如果說...
    tikyle閱讀 1,337評論 4 26
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139