##sshd遠端連接配接的優化
版主QQ:2559721591 資料網站:http://rshare.ys168.com
網絡環境:
ssh伺服器(虛拟機):192.168.10.25
ssh客戶機(實體機):192.168.10.1
ssh:是安全的外殼的縮寫(Secure Shell)。是專門為遠端登入會話和其他網絡服務提供安全性的協定。
linux的ssh遠端登入軟體:openssh,預設端口是22。
顯示遠端連接配接過程:ssh -v [email protected]
#軟體安裝
yum install -y openssh-server openssh-clients openssh
說明:服務端:openssh-server
用戶端:openssh-clients
通用程式:openssh
密鑰驗證:openssh-askpass
服務基本管理:
重新開機服務:service sshd restart
設為開機啟動:chkconfig sshd on
常用指令:ssh、scp、ssh-keygen、ssh-copy-id、sftp
ssh遠端登入:
文法:ssh [選項] 使用者@遠端IP [指令]
選項:-v 顯示過程
例:遠端執行指令:ssh [email protected] 'ls /;ifconfig'
遠端登入:ssh [email protected]
scp指令:
功能:采用ssh協定上傳、下載下傳檔案。
文法:scp -rv 源檔案 目标檔案
選項:-r 遞歸複制目錄 -v 顯示過程 -P 指定端口
執行個體:上傳本機/etc目錄到[email protected]:/tmp/目錄。
scp -rv /etc [email protected]:/tmp/ //上傳檔案
ssh [email protected] ls /tmp/et* //驗證結果
執行個體:上傳[email protected]:/etc目錄到本機/opt目錄。
scp -rv [email protected]:/etc /opt/ //下載下傳檔案
ls /opt/ //驗證結果
#問題:ssh服務連接配接慢的解決。
說明:sshd_config是伺服器配置,ssh_config是用戶端配置檔案。
首先:vi /etc/ssh/sshd_config 修改如下内容:
UseDNS no //禁用DNS解析功能(122行)
GSSAPIAuthentication no //禁用GSSAPI授權功能(81行)
然後:vi /etc/ssh/ssh_config //用戶端配置檔案,修改如下内容:
最後:1、重新開機sshd服務:service sshd restart
2、用客戶機遠端登入測試:ssh [email protected] ifconfig
##需求:實作ssh免密碼遠端登入。采用id_rsa私鑰、id_rsa.pub公鑰檔案自動驗證功能。
RSA簽名和驗簽過程:
1.簽名過程:
client提取消息m的消息摘要h(m),并使用自己的私鑰對摘要h(m)進行加密,生成簽名s。
client将簽名s和消息m一起,使用server發過來的公鑰進行加密,獲得密文c,發送給server。
2.驗簽過程:
server接受到密文後,用自己的私鑰對其解密,獲得明文消息m和簽名s。
server使用client的公鑰解密數字簽名s,獲得消息摘要h(m)。
server使用相同的方法提取消息m的消息摘要h(m)與上一步解密得到的h(m)進行比較,如果相同則驗簽成功。
公鑰和私鑰須知:
A、公鑰是給别人的:
1、發送密文使用公鑰加密
2、驗證簽名使用公鑰驗證
B、私鑰是自己保留的
1、接受密文使用私鑰解密
2、發送簽名使用私鑰簽名
注意:上述過程逆轉是不行的,比如使用私鑰加密,使用公鑰解密是不行的。
實作思路:1、在客戶機用ssh-keygen生成id_rsa私鑰、id_rsa.pub公鑰檔案。
2、将客戶機的id_rsa.pub公鑰檔案上傳給ssh伺服器指定的使用者家目錄。
3、在客戶機遠端登入,測試是否免密碼登入。
注意:公鑰和私鑰驗證是識别身份是根據客戶機的主機名來确認。上傳客戶機的公鑰後,一定不要再修改客戶機的主機名,否則公鑰和私鑰無法認證。
實施步驟:
1、在客戶機生成公鑰和私鑰(互動式):ssh-keygen -t rsa
(非互動):ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ''
選項說明:-t指定加密算法 -f指定密鑰檔案 -N指定加密密碼
#生成成對的公鑰和私鑰密鑰。
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:以下為密鑰指紋辨別符
aa:0e:89:eb:83:55:44:d1:a1:ed:2d:81:aa:4e:47:29 [email protected]
2、在客戶機上傳公鑰給伺服器:
方法一:ssh-copy-id [email protected]
方法二:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
3、在客戶機測試遠端控制:ssh [email protected] ifconfig
附加任務:掃描192.168.10.25主機上的key檔案内容。
ssh-keyscan 192.168.10.25
#ssh服務端配置檔案安全加強。
#修改伺服器主配置檔案:vi /etc/ssh/sshd_config
Port 22
ListenAddress 0.0.0.0
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#LoginGraceTime 2m //登入寬限期為2分鐘
#PermitRootLogin yes //允許root登入
#StrictModes yes //yes必需保證存放公鑰的目錄的屬主與登陸使用者名是相同的
#MaxAuthTries 6 //密碼錯誤重試6次
#MaxSessions 10 //最大10個會話
#RSAAuthentication yes //啟用RSA驗證
#PubkeyAuthentication yes //啟用公鑰驗證
#AuthorizedKeysFile .ssh/authorized_keys //公鑰儲存的檔案
#PermitEmptyPasswords no //禁止空密碼登入
PasswordAuthentication yes //啟用密碼驗證
Subsystem sftp /usr/libexec/openssh/sftp-server //啟用子系統sftp共享服務
#sftp用戶端
功能:采用sftp協定登入到ssh伺服器,通路伺服器上的檔案,在伺服器和客戶機之間傳輸檔案(上傳、下載下傳)。
文法:sftp 使用者名@遠端IP
執行個體:sftp [email protected]
常用指令:
說明:sftp登入成功後,可以執行大多數檔案管理的shell指令。
help或? //顯示指令幫助
pwd //顯示伺服器工作路徑
!pwd //顯示本地工作路徑
ls //顯示伺服器目前目錄的檔案清單
cd /tmp //切換伺服器路徑到/tmp目錄
!ls //檢視本地檔案清單
lcd /etc //切換本地路徑到/etc
get 源 目标 //下載下傳檔案
put 源 目标 //上傳檔案
bye //登出
伺服器端配置檔案小結:
[root@localhost ~]# vim /etc/ssh/sshd_config 配置檔案中主要的三部分内容如下
1、常見SSH伺服器監聽的選項如下:
Port 22 //監聽的端口為22
Protocol 2 //使用SSH V2協定
ListenAdderss 0.0.0.0 //監聽的位址為所有位址
UseDNS no //禁止DNS反向解析
必做:找到UseDNS選項,預設為yes,會影響連接配接速度,将yes改為no。
2、常見使用者登入控制選項如下:
PermitRootLogin no //禁止root使用者登入
PermitEmptyPasswords no //禁止空密碼使用者登入
LoginGraceTime 2m //登入驗證時間為2分鐘
MaxAuthTries 6 //最大重試次數為6
AllowUsers user //隻允許user使用者登入,與DenyUsers選項相反
3、常見登入驗證方式如下:
PasswordAuthentication yes //啟用密碼驗證
PubkeyAuthentication yes //啟用秘鑰驗證
AuthorsizedKeysFile .ssh/authorized_keys //指定公鑰資料庫檔案
本文轉自rshare 51CTO部落格,原文連結:http://blog.51cto.com/1364952/1952311,如需轉載請自行聯系原作者