1. SSHD服務
(1)SSH協議:安全外殼協議,爲Secure Shell的縮寫。SSH是建立在應用層和傳輸層基礎上的安全協議,sshd服務使用ssh協議來進行遠程控制和完成計算機之間的文件傳送。傳統的傳輸方式是telnet(終端仿真協議),這種方式極爲不安全,並且會使用明文傳輸密碼。
(2)OpenSSH軟件包,提供了服務端後臺程序和客戶端工具,用來加密遠程控件和文件傳輸過程中的數據,並由此來代替原來類似的服務。
OpenSSH服務需要的3個軟件包:
[root@zhao1 ~]# rpm -qa | grep openssh#查看已安裝的openssh相關軟件包
openssh-5.3p1-84.1.el6.x86_64#包含openssh服務器及客戶端的核心文件
openssh-askpass-5.3p1-84.1.el6.x86_64
openssh-clients-5.3p1-84.1.el6.x86_64#openssh客戶端軟件包
openssh-server-5.3p1-84.1.el6.x86_64#openssh服務器軟件包
[root@zhao1 ~]# rpm -pqi /mnt/Packages/openssh-5.3p1-84.1.el6.x86_64.rpm #查看該軟件包的作用
(3)OpenSSH配置文件
[root@zhao1 ~]# rpm -pql /mnt/Packages/openssh-server-5.3p1-84.1.el6.x86_64.rpm#查看該軟件包所包含的配置文件
OpenSSH常用的配置文件是:/etc/ssh/sshd_config和/etc/ssh/ssh_config,其中/etc/ssh/sshd_config爲服務端配置文件,/etc/ssh/ssh_config爲客戶端配置文件。
服務端的配置文件:
[root@zhao1 ~]# vim /etc/ssh/sshd_config
13 #Port 22#設置sshd監聽端口號
SSH預設會使用22這個port,也可以使用多個port。例如,想要開放sshd端口爲22和222,此時可以多加一行Port 222即可,然後重啓sshd就好了。
15 #ListenAddress 0.0.0.0#設置sshd服務器綁定的IP地址,0.0.0.0表示監聽所有地址
21 Protocol 2#選擇SSH的協議版本,如果想支持版本1,可以改爲Protocol 2,1
36 SyslogFacility AUTHPRIV#定義日誌類別,默認日誌在/var/log/secure文件中
查看系統各類日誌存放地點:
[root@zhao1 ~]# vim /etc/rsyslog.conf
41 #LoginGraceTime 2m#多長時間沒有成功連上SSH就強迫斷線
42 #PermitRootLogin yes#是否允許root登錄
64 #PasswordAuthentication yes#密碼驗證
65 #PermitEmptyPasswords no#是否允許空密碼登錄
112 #PrintMotd yes#登錄後打印出登錄時間、地點以及/etc/motd中的內容
116 #UsePrivilegeSeparation yes#是否允許權限較低的用戶操作程序
122 #UseDNS yes
80 #GSSAPIAuthentication no#此兩項爲使用DNS去反查客戶端的主機名,來判斷客戶端的來源是否正常合法,常用於內網中
123 #PidFile /var/run/sshd.pid#放置SSHD這個PID文檔的地點
(4)服務的開啓、關閉及狀態的查看
方法1:
[root@zhao1 ~]# service sshd status/start/stop/restart
方法2:
[root@zhao1 ~]# /etc/init.d/sshd status/start/stop/restart
服務開機狀態的設定
[root@zhao1 ~]# chkconfig --list sshd#服務狀態的查看
sshd 0:off1:off2:on3:on4:on5:on6:off
[root@zhao1 ~]# chkconfig sshd on#服務開機自動開啓
[root@zhao1 ~]# chkconfig sshd off#服務開機自動關閉
(5)SSH遠程登錄
連接方式:ssh [遠程主機用戶名]@[遠程服務器主機名或IP地址]
方式1:root用戶遠程登錄
[root@zhao1 ~]# ssh 192.168.1.212
方式2:普通用戶遠程登錄
[root@zhao1 ~]# ssh [email protected]
說明:
第一次登錄服務器時系統沒有保存遠程主機的信息,爲了確定該主機的身份會提示用戶是否繼續連接,輸入yes後,這時系統會將服務器的信息寫入用戶主目錄的$HOME/.ssh/known_hosts文件中,下次再次登錄時就不會提示次信息了。
克隆後的虛擬機,默認網卡會變爲eth1,執行以下命令可以修改爲eth0
[root@zhao1 ~]# rm -fr /etc/udev/rules.d/70-persistent-net.rules
(6)通過密鑰進行sshd服務認證
實驗環境:
服務端:zhao1/192.168.1.211
客戶端:zhao2/192.168.1.212
第一步:客戶端生成密鑰對
[root@zhao2 ~]# ssh-keygen
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:
cb:32:17:d1:5a:3f:e9:52:dc:03:18:75:99:7c:2a:1e root@zhao2
The key's randomart image is:
+--[ RSA 2048]----+
| .....o |
| . o .+ .|
| . + . o |
| + oE+. |
| S .*oo |
| . o o.. . |
| o + . . |
| + . |
| |
+-----------------+
[root@zhao2 ~]# cd /root/.ssh/
[root@zhao2 .ssh]# ls
id_rsa id_rsa.pub
第二步:發佈公鑰
使用 ssh-copy-id命令將客戶端的公鑰發佈到遠程服務器192.168.1.211,可以使用-i參數指定本地公鑰存放的位置。
[root@zhao2 .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
The authenticity of host '192.168.1.211 (192.168.1.211)' can't be established.
RSA key fingerprint is d5:fb:5b:0e:df:9d:37:aa:17:42:1d:b5:39:9f:b1:e3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.211' (RSA) to the list of known hosts.
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
第三步:連接遠程服務器
[root@zhao2 .ssh]# ssh [email protected]
[root@zhao1 ~]#
(7)實現兩臺服務器之間數據的複製
SCP源地址目標地址
SCP命令:基於ssh登錄並複製數據,複製過程很安全,操作起來很方便。
[root@zhao1 ~]# scp /etc/passwd [email protected]:/mnt
[email protected]'s password:
passwd