簡介:
<col>
ssh 全稱
Secure Shell Protocol
預設端口
預設22
服務處于監聽狀态,用于遠端連結,早期使用telnet;
主要功能
遠端連機和sftp 功能
版本
兩個不相容的ssh協定版本,分别是1.x和2.x;服務端預設是2.x
ssh2同時支援RSA和DSA密鑰,但是ssh1僅僅支援RSA密鑰;
ssh服務端軟體
OpenSSH(負責加密)和用戶端SSH組成;
工作機制
本地的ssh用戶端發送一個連結請求到遠端的ssh服務端,服務端檢查連結的用戶端發送的資料包和ip位址,如果确認合法,就會發送密鑰給ssh的用戶端,此時,用戶端本地的再将密鑰發送給服務端,自此連結建立。
備注:連不上的情況
防火牆
端口是否修改
用戶端線路有問題
ssh1.x的整個聯機加密步驟:
#每一台ssh服務主機都可以使用RSA加密方式來産生一個1024-bit的RSAkey,這個RSA的加密方式就是用來生産公鑰和私鑰的算法之一。
1、當ssh服務啟動時,就會産生一個768-bit 的臨時公鑰:
grep -i serverkey /etc/ssh/sshd_config
#ServerKeyBits 1024
注意(centos 是768)
2、
當client端SSH聯機請求傳送過來時,Server就會将這個1024-bit的公鑰傳給Client端,此時Client會将此公鑰與先前存儲的
公鑰進行比對,看是否标準。判斷标準是:Client 端聯機使用者目錄下~/.ssh/known_hosts檔案的内容(linux用戶端)
在Client端接受到這個1024-bit的Server後,Client本地也會随機産生一個246-bit的私鑰(Private
key或hostkey),并且以加密的方式(具體的加密算法由用戶端在伺服器提供的所有可用算法中選擇,預設為3DES算法)将Server
key和host key 整合成一對完整的key pair,并将這個keypair在傳給server。
3、當用戶端完成後,Server與Client端在這次的聯機中,就以這一對1024-bit的keypair進行資料傳輸
ssh version2 多加了一個确認聯機正确性的Diffie-Hellman機制,每次資料傳輸中,server都會以該機制檢查資料的來源是否正确,這樣,避免聯機過程中被插入惡意程式代碼的問題,是比較安全的。
ssh服務的認證類型
ssh服務主要提供兩種級别的安全驗證:
基于密碼的安全驗證 : ssh -p52113 [email protected]
基于密鑰的安全認證 :cat ~/.ssh/known_hosts
[10.10.70.11]:52113
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAtjcHQwK/He9lYMFkZm9VhJEUOyby5t6EafXguptVd71TKJJ+SLGebJq3gX8BCLE7VLxDQDPZ/v57AmHFg72Vh4FTbDnhgcD0rgFAwShRIv+R3vCiZTbTW3tsjuIpEC6VlMaTxe5mfGk9hC7X0S2vC3eLV11kJTsNztlhjkikUTwu9qJ9jKL3uVVe6L8+u7Q3pjL1ORwKxqlNMs5lDoZ4V3PP3MfC2PNcrr1IIhJZCaRKmHVc0v2ba2yGnvWzZcd/KRVirlSixyL7Ibka07NsShVrBROkiVcWDf9Yc+xI5D9WkBJncgJEetUQ07bRUZsC/LYUg8On6XcU0lhYw1Al2w==
安裝:
#預設安裝就已包含ssh服務所需要的軟體OpenSSL和OpenSSH
1、開機自啟動;
2、服務端檔案: /etc/ssh/sshd_config
#服務端包含兩個服務功能ssh遠端連結。SFTP服務
用戶端檔案:/etc/ssh/ssh_config
#ssh用戶端:包含ssh以及像scp(遠端拷貝)、slogin(遠端登入)、sftp(安全FTP檔案傳輸)等應用程式
ssh密鑰生成 :
工具:ssh-keygen #是一個腳本
#密鑰生成的時候盡量不使用root使用者
A、
ssh-keygen -t dsa (指定算法)
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:
4b:73:39:13:6d:f6:9d:e2:2f:5e:1c:23:37:ea:37:94 root@moban2
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
| |
| . |
| . + |
| = . ..|
| S = o.*o|
| . + o. *E+|
| . o.o |
| ..oo |
| .oo..|
+-----------------+
# -t 指定算法 預設rsa ; dsa 一般用于數字簽名 (一般使用dsa)
B、檢查
ls ~/.ssh/
id_dsa id_dsa.pub
#id_dsa(私鑰 :鑰匙) 權限 :小 分發伺服器: 保留本地
id_dsa.pub(公鑰:鎖)
C、進行公鑰分發 :
工具:ssh-copy-id
ssh-copy-id -i id_dsa.pub "-p 52113 [email protected]"
#ssh-copy-id 是一個腳本;預設端口是22 ;如果不是預設需要使用-p指定 ,且需要使用雙引号;隻能分發公鑰;
範例: ssh-copy-id -i id_dsa.pub "-p 52113 [email protected]"
[email protected]'s password:
Now try logging into the machine, with "ssh '-p 52113 [email protected]'", and check in:
.ssh/authorized_keys 成功了
to make sure we haven't added extra keys that you weren't expecting.
D、檢查分發主機:
ll ~/.ssh/authorized_keys
-rw------- 1 root root 596 Jan 30 21:51 /root/.ssh/authorized_keys
驗證:
ssh 10.10.70.12
Last login: Fri Jan 30 22:50:07 2015 from 10.10.70.11
配置檔案:
#sshd_config服務端;ssh_config用戶端
網友詳解:http://bbs.linuxtone.org/thread-5487-1-1.html
Port 52113 #→ssh連接配接預設的端口修改
PermitRootLogin no #→root禁止遠端登陸。
PermitEmptyPasswords no #→禁止空密碼登陸
UseDNS no #→不使用DNS
GSSAPIAuthentication no #一般為NO
ssh 連接配接慢 排查:
1、在ssh服務端上更改/etc/ssh/sshd_config檔案中的配置為如下内容:
UseDNS no
# GSSAPI options
GSSAPIAuthentication no
然後,執行/etc/init.d/sshd restart重新開機sshd程序使上述配置生效,在連接配接一般就不慢了。
2、檢查ssh服務端上/etc/hosts檔案中,127.0.0.1對應的主機名是否和uname -n的結果一樣,或者把本機ip和hostname(uname -n結果)加入到/etc/hosts裡。
3、利用ssh -v的調試功能查找慢的原因