SSH基本管理和配置文件的使用


服務端:linl_S    IP:10.0.0.15

客戶端:lin_C    IP:10.0.0.16
 
SSHD服務
SSH協議:安全外殼協議。為Secure Shell的縮寫。SSH為建立在應用層和傳輸層基礎上的安全協議。
sshd服務使用SSH協議可以用來進行遠程控制,或在計算機之間傳送文件。而實現此功能的傳統方式,如telnet(終端仿真協議)都是極為不安全的,並且會使用明文傳送密碼。
OpenSSH軟件包,提供了服務端后台程序和客戶端工具,用來加密遠程控件和文件傳輸過程中的數據,並由此來代替原來的類似服務。
 
安裝包
OpenSSH服務需要4個軟件包
1 [root@linl_C ~]# ls /mnt/Packages/openssh*
2 /mnt/Packages/openssh-5.3p1-94.el6.x86_64.rpm          /mnt/Packages/openssh-clients-5.3p1-94.el6.x86_64.rpm
3 /mnt/Packages/openssh-askpass-5.3p1-94.el6.x86_64.rpm  /mnt/Packages/openssh-server-5.3p1-94.el6.x86_64.rpm
每個軟件包的作用:
openssh-5.3p1-94.el6.x86_64.rpm    包含OpenSSH服務器及客戶端需要的核心文件
openssh-clients-5.3p1-94.el6.x86_64.rpm    OpenSSH客戶端軟件包
openssh-server-5.3p1-94.el6.x86_64.rpm    OpenSSH服務器軟件包
查看軟件包的詳情:
 1 [root@linl_C ~]# rpm -qpi /mnt/Packages/openssh-server-5.3p1-94.el6.x86_64.rpm 
 2 warning: /mnt/Packages/openssh-server-5.3p1-94.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
 3 Name        : openssh-server               Relocations: (not relocatable)
 4 Version     : 5.3p1                             Vendor: Red Hat, Inc.
 5 Release     : 94.el6                        Build Date: Mon 30 Sep 2013 03:08:20 PM CST
 6 Install Date: (not installed)               Build Host: x86-022.build.eng.bos.redhat.com
 7 Group       : System Environment/Daemons    Source RPM: openssh-5.3p1-94.el6.src.rpm
 8 Size        : 689757                           License: BSD
 9 Signature   : RSA/8, Mon 28 Oct 2013 03:12:04 PM CST, Key ID 199e2f91fd431d51
10 Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
11 URL         : http://www.openssh.com/portable.html
12 Summary     : An open source SSH server daemon
13 Description :
14 OpenSSH is a free version of SSH (Secure SHell), a program for logging
15 into and executing commands on a remote machine. This package contains
16 the secure shell daemon (sshd). The sshd daemon allows SSH clients to
17 securely connect to your SSH server.
 
OpenSSH配置文件
OpenSSH常用配置文件有兩個/etc/ssh/ssh_config 和 /etc/ssh/sshd_config
ssh_config 為客戶端配置文件
sshd_config 為服務端配置文件
 
 
服務啟動和關閉
方法1:[root@linl_C ~]# service sshd start | restart | stop | status | reload 
方法2:[root@linl_C ~]# /etc/init.d/sshd start | restart | stop | status | reload
 
服務開機自啟和關閉
1 [root@linl_C ~]# chkconfig sshd on | off
2 [root@linl_C ~]# chkconfig --list sshd
3 sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off
 
SSH遠程登錄

方法1:ssh  [遠程主機用戶名]@[遠程服務器主機名或IP地址]

1 [root@linl_C ~]# ssh 10.0.0.15            #如果用root進行登錄遠程主機可以省略用戶名
2 The authenticity of host '10.0.0.15 (10.0.0.15)' can't be established.
3 RSA key fingerprint is e9:1f:3a:40:e9:79:a9:33:ff:b9:37:23:a6:1f:70:29.
4 Are you sure you want to continue connecting (yes/no)? yes     #填入完整的“yes”,而不是Y或y而已
5 Warning: Permanently added '10.0.0.15' (RSA) to the list of known hosts.
6 root@10.0.0.15's password: 
7 Last login: Thu May 19 11:25:32 2016 from 10.0.0.1
8 [root@linl_S ~]#          #已經登錄到lin_S端
方法2: ssh -l [遠程主機用戶名] [遠程服務器主機名或IP地址]
1 [root@linl_C ~]# ssh -l root 10.0.0.15     #這里的用戶名root不能省略
2 The authenticity of host '10.0.0.15 (10.0.0.15)' can't be established.
3 RSA key fingerprint is e9:1f:3a:40:e9:79:a9:33:ff:b9:37:23:a6:1f:70:29.
4 Are you sure you want to continue connecting (yes/no)? yes
5 Warning: Permanently added '10.0.0.15' (RSA) to the list of known hosts.
6 root@10.0.0.15's password: 
7 Last login: Thu May 19 13:53:19 2016 from 10.0.0.1
8 [root@linl_S ~]#         #已經登錄到lin_S端
 
創建普通用戶
1 [root@linl_S ~]# useradd linypwb
2 [root@linl_S ~]# echo 123456 |passwd --stdin linypwb
3 Changing password for user linypwb.
4 passwd: all authentication tokens updated successfully.
 
設置主機名
1 [root@linl_C ~]# vi /etc/hosts
2 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
3 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
4 10.0.0.15 lin_S lin_S     
 
遠程但不登入,直接執行命令
方法1: ssh  [遠程主機用戶名]@[遠程服務器主機名或IP地址] [命令]
方法2: ssh -l [遠程主機用戶名] [遠程服務器主機名或IP地址] [命令]
1 [root@linl_C ~]# ssh linypwb@lin_S date
2 linypwb@lin_s's password: 
3 Thu May 19 14:37:38 CST 2016
4 [root@linl_C ~]#                #身份還是root,只是以linypwb的身份在遠程主機上執行了一個命令而已
 
Server Keys記錄數據
第一次登錄服務器時系統沒有保存遠程主機的信息,為了確認該主機身份會提示用戶是否繼續連接,輸入yes后登錄,這時系統會將遠程服務器信息寫入用戶主目錄下的$HOME/.ssh/known_hosts文件中,下次再進行登錄時因為保存有該主機信息就不會再提示了。
1 [root@linl_C ~]# vi .ssh/known_hosts 
2 lin_s ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmdWhFkQGgpPhjELJnP5+G6OEJ5+dS3EbISKrctYbxd82USSnYyqiWcxOb7IpMoVltvyvciwf8/6B666fkNAW7WDR89afGL6yrwC8+PB3fwkSg9RPyZw4qGoEGoP/Z5LNa8MzYHf+98pzZ9VllmWUpDkP9lkhqeSMdIRxP5WyK9z1HRdE9N+KbIKjpJBvchchyaBYgwOWArF8Joyz0tyRpf48iXu5/8fizNNWnHNvC6IZDRqu8DdphGyAFPksW/1DXN5eSmMYbPo2R2OGEfEvdt3xSSsoK2Vws6osFma19E7tb2zd4BTmOYiLJtgmzVkGFdgk5a/q4jgWHTdi6C+wjw==
 
SSHD 服務配置文件
注:參數前面有#,表示是默認值,也表示注釋。
備份配置文件
1 [root@linl_S ~]# cp /etc/ssh/sshd_config{,.bak}      #修改配置文件前,盡量備份文件,以便出錯能夠及時恢復
 
 
/etc/ssh/sshd_config 配置文件    P1149
1)#Port 22
# SSH 預設使用 22 這個 port,也可以使用多個 port,即重復使用 port 這個設定項目!
#例如想要開放 sshd 端口為 22 和 222,則多加一行內容為: Port 222  即可
#然后重新啟動 sshd 這樣就好了。建議大家修改 port number 為其它端口,防止別人暴力破解。
例:修改 sshd 服務監聽的端口為22和222
 1 [root@linl_S ~]# vi /etc/ssh/sshd_config 
 2 ...
 3 #Port 22
 4 Port 22                         #監聽端口22
 5 Port 222                        #監聽端口222
 6 #AddressFamily any
 7 #ListenAddress 0.0.0.0
 8 #ListenAddress ::
 9 ...
10 [root@linl_S ~]# service sshd restart         #重啟sshd服務
11 Stopping sshd:                                             [  OK  ]
12 Starting sshd:                                             [  OK  ]
13 [root@linl_S ~]# netstat -anptu |grep ssh     #查看sshd監聽端口
14 tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3549/sshd                    
15 tcp        0      0 0.0.0.0:222                 0.0.0.0:*                   LISTEN      3549/sshd           
16 tcp        0     52 10.0.0.15:22                10.0.0.1:57030              ESTABLISHED 2574/sshd           
17 tcp        0      0 :::22                       :::*                        LISTEN      3549/sshd                   
18 tcp        0      0 :::222                      :::*                        LISTEN      3549/sshd       
指定port來遠程登錄
方法1: ssh  [遠程主機用戶名]@[遠程服務器主機名或IP地址] -p [port]
方法2: ssh -p [port] [遠程主機用戶名]@[遠程服務器主機名或IP地址]
1 [root@linl_C ~]# ssh lin_S -p 222         #如果用root進行登錄遠程主機可以省略用戶名
2 root@lin_s's password: 
3 Last login: Thu May 19 14:31:03 2016 from 10.0.0.16
4 [root@linl_S ~]#                          #已經登錄到lin_S端
 
2) #ListenAddress 0.0.0.0
#設置 sshd 監聽的主機適配卡 IP 地址。0.0.0.0 表示偵聽所有地址
#例子:如果有兩個 IP (網卡),分別是10.0.0.14 及10.0.0.15 ,那么只想要開放10.0.0.14 時,就可以寫如同下面的樣式:
ListenAddress 10.0.0.14
#只監聽來自10.0.0.14 這個 IP 的 ssh 聯機。
例:添加一塊網卡,設置只監聽新增的這塊網卡
1、虛擬機內添加網卡
 
2、編輯新增網卡信息,並重啟網絡服務
 1 [root@linl_S ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1        #編輯網卡信息,以下均為必要項
 2 DEVICE=eth1
 3 ONBOOT=yes
 4 BOOTPROTO=static
 5 IPADDR=10.0.0.14
 6 PREFIX=24
 7 GATEWAY=10.0.0.1
 8 DNS1=8.8.8.8
 9 NETMASK=255.255.255.0
10 [root@linl_S ~]# service network restart            #重啟網絡服務
11 Shutting down interface eth0:                              [  OK  ]
12 Shutting down loopback interface:                          [  OK  ]
13 Bringing up loopback interface:                            [  OK  ]
14 Bringing up interface eth0:  Determining if ip address 10.0.0.15 is already in use for device eth0...
15                                                            [  OK  ]
16 Bringing up interface eth1:  Determining if ip address 10.0.0.14 is already in use for device eth1...
17                                                            [  OK  ]
3、修改配置監聽 IP,並重啟 sshd 服務
 1 [root@linl_S ~]# vi /etc/ssh/sshd_config           #修改監聽IP
 2 ...
 3 #Port 22
 4 #AddressFamily any
 5 #ListenAddress 0.0.0.0
 6 ListenAddress 10.0.0.14
 7 #ListenAddress ::
 8 ...
 9 [root@linl_S ~]# service sshd restart              #重啟ssh服務
10 Stopping sshd:                                             [  OK  ]
11 Starting sshd:                                             [  OK  ]
12 [root@linl_S ~]# netstat -anptu |grep sshd         #查看監聽情況
13 tcp        0      0 10.0.0.14:22                0.0.0.0:*                   LISTEN      4284/sshd           
4、lin_C 客戶端遠程測試
 1 [root@linl_C ~]# ssh lin_S
 2 ssh: connect to host lin_S port 22: Connection refused    #提示拒絕連接
 3 [root@linl_C ~]# ssh 10.0.0.14                            #連接監聽IP則可以
 4 The authenticity of host '10.0.0.14 (10.0.0.14)' can't be established.
 5 RSA key fingerprint is e9:1f:3a:40:e9:79:a9:33:ff:b9:37:23:a6:1f:70:29.
 6 Are you sure you want to continue connecting (yes/no)? yes
 7 Warning: Permanently added '10.0.0.14' (RSA) to the list of known hosts.
 8 root@10.0.0.17's password: 
 9 Last login: Thu May 19 16:18:50 2016
10 [root@linl_S ~]#                         #已經登錄到lin_S
 
 3)Protocal 2
#選擇的 SSH 協議版本,可以是1也可以是2,CentOS5.x預設是僅支援V2
#如果要同時支持兩者,就必須要使用 2,1 這個分隔了(Protocal 2,1)!
1 [root@linl_S ~]# vi /etc/ssh/sshd_config
2 #Protocol 2
3 Protocol 2,1
 
4)Pricate Key
說明主機的 Private Key 放置的檔案,預設使用下面的檔案即可!
1 # HostKey for protocol version 1
2 #HostKey /etc/ssh/ssh_host_key        #SSH v1使用的私鑰
3 # HostKeys for protocol version 2
4 #HostKey /etc/ssh/ssh_host_rsa_key    #SSH v2使用的RSA私鑰
5 #HostKey /etc/ssh/ssh_host_dsa_key    #SSH v2使用的DSA私鑰
 
5)SyslogFacility AUTHPRIV
關於登錄文件的訊息數據放置與 daemon 的名稱!

# 當有人使用 SSH 登入系統的時候,SSH 會記錄信息,這個信息要記錄的類型為AUTHPRIV。

#查看日志配置文件,得知:sshd服務日志存放在:/var/log/secure
1 [root@linl_S ~]# vim /etc/rsyslog.conf 
2 # The authpriv file has restricted access.
3 authpriv.*                                              /var/log/secure

 

6)#LogLevel INFO
# 登錄記錄的等級!INFO級別以上。
 
7) #ServerKeyBits 1024

 

# 定義Server key 的長度,默認是1024
 
8)安全設定項
1 #PermitRootLogin yes          #是否允許root登入!預設是允許的,但是建議設定成no!
2 #PermitEmptyPasswords no      #若上面那一項設定為yes的話,這一項就最好設定為no  這個項目在是否允許以空的密碼登入!當然不允許!
3 #PasswordAuthentication yes   #是否允許使用密碼驗證,默認為允許
4 #StrictModes yes              #當使用者的 host key 改變之后,Server 就不接受聯機,可以抵擋部分的木馬程序!
5 #PubkeyAuthentication yes     #是否允許Public Key?當然允許啦!僅針對version 2

 

#LoginGraceTime 2m         #grace 優雅

# 當使用者連上 SSH server 之后,會出現輸入密碼的畫面,在該畫面中,

# 在多久時間內沒有成功連上 SSH server 就強迫斷線!若無單位則默認時間為秒!    
例:將LoginGraceTime 2m  改為:LoginGraceTime 5
1 [root@lin_C ~]# ssh lin_S
2 root@lin_s's password:       #停留5秒后,再次輸入,結果斷開
3 Connection closed by lin_S

 

#PrintMotd yes
打印出/etc/motd 這個文檔的內容。
例:/etc/motd寫入內容,客戶端遠程測試效果
1 [root@linl_S ~]# echo "歡迎登錄本系統,所有操作都將有記錄" > /etc/motd
2 [root@linl_C ~]# ssh lin_S        #在lin_C 客戶端測試訪問lin_S
3 root@lin_s's password: 
4 Last login: Thu May 19 17:59:06 2016 from 10.0.0.16
5 歡迎登錄本系統,所有操作都將有記錄    #打印出了/etc/motd 中的內容
6 [root@linl_S ~]# 

 

# PrintLastLog yes

# 顯示上次登入的信息!預設也是 yes!

Last login: Wed Mar 23 22:12:58 2016 from 192.168.1.100

#改:PrintLastLog yes 為:PrintLastLog no 就不顯示這個信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM