openSSH服務(wù)及其應(yīng)用

openssl

:TLS/SSl(libssl,libcryto,openssl),TSL PKI

OpenSSH:

telnet,TCP/23,遠程登錄
認證明文(密碼認證)
數(shù)據(jù)傳輸明文

ssh:Secure Shell ,TCP/22
C/S架構(gòu) 套接字監(jiān)聽

SSH --> SSH

openssh(開源) 即是協(xié)議,又是軟件

ssh V1(中間人攻擊),V2

客戶端:
LINUX:ssh
Windows:putty,SecureCRT(商業(yè)版),SSHsecureShellClient,Xmanger

服務(wù)器端:(linux,unix)
sshd

openssh(ssh,sshd)

ssh--->telnet

ssh:主機密鑰
client-------->server
yes:接受服務(wù)器主機發(fā)來的公鑰
RSA,DSA
客戶端生成臨時對稱密鑰(會話)隨機生成
對稱密鑰使用服務(wù)器的公鑰加密后傳給服務(wù)器,只有服務(wù)器的私鑰可以解密。

賬號和密碼用對稱密鑰加密后傳給服務(wù)器進行認證。
認證通過,建立一個永久的會話通道。

基于口令的認證
基于密鑰的認證

客戶端生成一對密鑰,公鑰傳到服務(wù)器的對應(yīng)用戶的家目錄下,身份認證是客戶端利用自己的私鑰加密一段數(shù)據(jù),服務(wù)器用客戶的公鑰解密??山?,則認證通過。

不允許root直接登錄,而是用普通用戶,在su切換。

安全措施:

  1. 限定某些臺有限主機能夠登錄
  2. 在前端vpn,允許vpn的IP地址登錄,先登錄到vpn在ssh到主機。
  3. 改變端口
  4. 經(jīng)常換密碼
[root@li ~]# rpm -qa |grep openssh
openssh-clients-5.3p1-84.1.el6.x86_64   
openssh-5.3p1-84.1.el6.x86_64 通用組件及庫
openssh-askpass-5.3p1-84.1.el6.x86_64
openssh-server-5.3p1-84.1.el6.x86_64


rpm   -qi   openssh-5.3p1-84.1.el6.x86_64 

netstat -tln
netstat -rn 路由表

UDP  無狀態(tài)
tcp   listen
netstat  -p  process|program

servcie sshd status
lsof -i:22
lsof(list open files)是一個列出當(dāng)前系統(tǒng)打開文件的工具,可以用來恢復(fù)刪除的數(shù)據(jù)。

配置文件

ssh (ssh_conf)
sshd (sshd_conf)
/etc/ssh/
moduli:和密鑰交換,認證有關(guān)的
不同sshv1  dsa  ,sshv2 rsa 沒有
注意:權(quán)限 私鑰600 公鑰644
 
   ├─sshd─┬─3*[sshd───bash]
     │      └─sshd───bash───pstree
sshd主進程,會創(chuàng)建多個子進程

vim /etc/ssh/sshd_conf

配置項格式:  var   values
修改端口 port 2223
AddressFamily any  :IPV4,IPV6哪個地址
ListenAddress 0.0.0.0 都監(jiān)聽 在哪一個地址上監(jiān)聽
KeyRegenerationInterval 1h 密鑰重新生成密鑰的時間
ServerKeyBits 1024  密鑰長度
SyslogFacility AUTHPRIV
LogLevel INFO

LoginGraceTime 2m  登錄的寬限期,建立會話后,要輸賬號和密碼。
PermitRootLogin yes  是否允許root直接登錄。
StrictModes yes 是否使用嚴格限定模式
MaxAuthTries 6 最大可以嘗試輸錯
MaxSessions 10
#RSAAuthentication yes  是否支持RSA認證
#PubkeyAuthentication yes 基于密鑰認證
#AuthorizedKeysFile     .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody
#RhostsRSAAuthentication no 主機認證
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
#Banner none  標(biāo)語
#PrintMotd yes  是否打印/etc/motd里的內(nèi)容
#PrintLastLog yes 打印上次登錄 ,不啟用信息泄露。
涉及安全,信息越少越好。
Subsystem       sftp    /usr/libexec/openssh/sftp-server
和ftps不同。

man sshd_config
kill -L

客戶端:ssh

ssh - OpenSSH SSH client (remote login program)
 ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D  [bind_address:]port] [-e escape_char]
         [-F configfile] [-i identity_file] [-L  [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
         [-O ctl_cmd] [-o option] [-p port] [-R  [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w
         local_tun[:remote_tun]] [user@]hostname [command]

如果不指定用戶,則以當(dāng)前的用戶切換過去。
ssh -l root host
ssh root@host 
  ~/.ssh/known_host  主機密鑰
不登錄主機,僅在主機上執(zhí)行命令,并返回執(zhí)行結(jié)果。

ssh -l username Remotehost ['command']  可以不用引號  
ssh -X 
 -X      Enables X11 forwarding.
  -Y      Enables trusted X11 forwarding.
  執(zhí)行圖形窗口
  -p  端口

基于密鑰的認證:

一臺主機為客戶端(基于某個用戶實現(xiàn) ),

1. 生成一對密鑰

ssh-keygen
ssh-keygen -t rsa 
密鑰保存在~/.ssh/id_rsa  
可以指定密鑰的名稱

2. 將公鑰傳輸至服務(wù)器端某用戶的家目錄下的.ssh/authorized_keys文件中

使用文件傳輸工具傳輸(ssh-copy-id,scp)
ssh-copy-id -i /path/pubkeyname  username@host
ssh-copy-id .ssh/id_rsa.pub root@172.16.100.2 

scp .ssh/id_rsa.pub  root@172.16.0.12:/tmp
ssh root@172.16.0.12  cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys  

3. 測試登錄

scp

基于ssh的遠程復(fù)制命令,可以實現(xiàn)在主機之間傳輸數(shù)據(jù)。

scp [option] SRC  DEST

remote_host:
  username@host:file
SYNOPSIS
     scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program]
         [[user@]host1:]file1 ... [[user@]host2:]file2
目錄  -r 
       -P
       -a  

ssh-keygen

.ssh的權(quán)限是700
 -f filename
             Specifies the filename of the key file
ssh-keygen -t rsa -f .ssh /id_rsa
[-N new_passphrase] 
-t rsa|dsa 
-f  /path/
-N   'passwd'    在腳本中使用

ssh-copy-id

 ssh-copy-id - install your public key in a remote machine’s authorized_keys 
ssh-copy-id [-i [identity_file]] [user@]machine

sftp

總結(jié)

  1. 密碼要經(jīng)常換
  2. 使用非默認端口;
  3. 限制登錄客戶地址
  4. 禁止管理員直接登錄
  5. 僅允許有限的用戶登錄
  6. 使用基于密鑰的認證
  7. 禁止使用版本1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容