1. 程式人生 > >SSH(2017-11-25)

SSH(2017-11-25)

ssh

一:Linux系統中常見的服務名稱和軟件包名。
服務名稱 軟件包名 實現的功能
nfs nfs-utils 實現文件的共享
bind named DNS域名解析系統
tftp tftp-server 迷你版的ftp文件服務器
vsftpd vsftpd 文件共享
dhcpd dhcp 動態的主機分配協議
smb Samba 文件共享
apache httpd 網站服務
sshd openssh-server 安全的shell ,可用於遠程管理
rsyslog rsyslog 記錄日誌,日誌文件服務
pxe dhcp+tftp+kickstat+vsftpd/http //自動化部署 (系統,初始化)

二:常見的網絡服務及其端口號
服務名 中文名 端口號
ftp 文本傳輸協議 21和20;其中21號端口是控制端口,20號端口是數據傳輸端口
dhcp 動態主機分配協議 67和68;其中67號端口為服務器端,68號端口為客戶端
DNS 域名解析系統 53
http 超文本傳輸協議 80
smpt 簡單的郵件傳輸協議 25
pop3 郵局協議 110
snmp 簡單網絡服務管理協議 161

三:ssh;
ssh的目的和功能;ssh可以實現安全的遠程連接和自動化運維。

Linux系統所有的服務及端口號的文件存放位置為; /etc//etc/services

服務端:
安裝:yum -y install openssh-server
查看:rpm -q openssh-server #查看是否安裝
rpm -ql openssh-server #查看安裝後的文件列表
rpm -qc openssh-server #查看配置文件
服務端的主配置文件的位置是 :/etc/ssh/sshd_config

客戶端:
安裝:yum -y install openssh-client
查看:rpm -q openssh-clients #查看是否安裝
rpm -ql openssh-clients #查看安裝後的文件列表
rpm -qc openssh-clients #查看配置文件列表
客戶端的主配置文件位置為:/etc/ssh/ssh_config

查看sshd服務是否開啟
lsof -i :22
查看vsftpd是否開啟
lsof -i :21
netstat -nutlp | grep :21


四:配置文件
cat /etc/ssh/sshd_config

#Port 22 // 默認的端口22,行號17
#AddressFamily any //支持任意地址簇(ipv4/ipv6),行號18
#ListenAddress 0.0.0.0 //監聽在任何ipv4地址上(即指定提供服務的IP地址),行號19
#ListenAddress :: //監聽在任何ipv6地址上
Protocol 2 //協議版本
SyslogFacility AUTHPRIV //定義日誌的對象。日誌文件是/var/log/secure
#LogLevel INFO //日誌的級別
#LoginGraceTime 2m //2分鐘不輸入密碼就禁止的登陸
#PermitRootLogin yes //允許管理員登陸(行號49)
#StrictModes yes //請用嚴格模式
#MaxAuthTries 6 //最多可以嘗試6次(行號51),建議設置為1或2。防止暴力破解。
#MaxSessions 10 //允許最大會話10個(行號52)。建設設置小一點。防止太多用戶遠程連接。
#RSAAuthentication yes //啟用RSA認證(行號54)。是采用密鑰文件認證。
#PubkeyAuthentication yes //啟用公鑰認證(行號55)。是采用密鑰文件認證。
#PasswordAuthentication yes //采用密碼認證
#PermitEmptyPasswords no //密碼為空不能登陸
P
#UseDNS yes //是否采用dns解析,建議設置成no,否則遠程連接時會卡很久
#PidFile /var/run/sshd.pid //pid文件位置
GSSAPIAuthentication yes //啟用GSSAPI接口認證,建議設置為no,否則遠程連接時可會卡很久。API是應用程序接口的縮寫。
X11Forwarding yes 啟用X11轉發功能(行號115)。即支持在ssh客戶端調用xwindow桌面程序。
Subsystem sftp /usr/libexec/openssh/sftp-server 子系統,啟用sftp文件共享功能(行號146)

五:sshd服務
cnetos7系列;
啟動服務: systemctl start sshd
重啟服務: systemctl restart sshd
重載服務: systemctl reload sshd
開機自啟:systemctl enable sshd
永久禁用:systemctl disable sshd
查看狀態:systemctl status sshd

cnetos6系列
啟動服務: service sshd start
重啟服務: service sshd restart
重載服務: service sshd reload
開機自啟:chkconfig sshd on
永久禁用:chkconfig sshd off
查看狀態:service sshd status

chkconfig --list 可以查看所有服務的狀態

六:ssh遠程連接免密碼
客戶端生成密鑰
ssh-keygen #密鑰的生成工具,一路回車即可 ,存放的位置為:/usr/bin/ssh-keygen ;可以用whereis 查看路徑,也可以查看客戶端的文件生成列表,即rpm -ql openssh

生成的密鑰保存在當前用戶的家目錄的.ssh目錄裏。
將公鑰傳到服務器;ssh-copy-id [email protected] 或ssh-copy-id -i id_rsa.pub [email protected]
公鑰會保存在root用戶家目錄的.ssh裏的authorized_keys裏面,下次遠程連接192.168.10.7這臺主機時就可以免密碼了。


連接過程中遇到的問題
1.如果把公鑰傳上去了還需要密碼,如下圖

技術分享圖片

解決方法:在客戶端執行ssh-add命名,就可以免密碼登錄了。
2.網絡服務正常無法連接
rm -rf ~/.ssh/known_hosts


SSH(2017-11-25)