ssh服務

ssh遠程連接服務
ssh目的:實現遠程管理和自動化運維。a

常用的服務
服務名 軟件包 功能
sshd openssh—server 用來遠程連接的服務
vsftpd vsftpd 文件名服務器,提供文件共享,用於存儲
nfs nfs—utils 文件服務器
smb samba 文件服務器
tftp tftp-servser 迷你的ftp文件服務器
rsyslog rsyslog 日誌服務
dhcpd dhcp 動態分配IP 地址
pxe dhcp+tftp+kickstat+vsftpd/http 自動化部署(系統,初始化)
Apache httpd web服務器即網站服務器
bind named DNS 域名解析服務

cat /e tc/services (記錄各個服務所對應的端口號)
例如:grep -w ftp /etc/services

常見的網絡服務協議,名稱級端口號
網絡端口的作用:區分不同的服務或應用軟件。
查當前電腦的21端口的網絡進程:netstat -atulp | grep :21 或者 ss -atnlp
註釋:a顯示所有進程 t顯示tcp協議進程 u顯示udp協議進程 n以數字顯示端口號
p顯示pid號 l顯示狀態爲listen監聽的進程 r顯示路由表
ftp:文件傳輸協議。21(控制端口)被動,20(數據端口)主動
http:超文本傳輸協議。用於web網站服務器。端口80
dns:域名系統。端口53。
dhcp:動態主機配置協議。服務器端67,客戶端68
ssh:安全的shell。用於遠程管理服務器的協議。端口 22
smtp:簡單郵件傳輸協議。用於發送郵件。端口:25
pop3:郵局協議。端口110
snmp:簡單網絡管理協議。端口161

查看所有的網絡進程狀態:netstat -atunlp | more

proto :協議
Recv-Q:接收
Send-Q:發送
Local Address :外來地址
Foreign Address:外來地址
State:狀態
PID/Program name :進程pid號/程序號

ssh
作用:提供遠程連接 遠程拷貝 數據加密 雙機互信
確保已完成以下工作:
1.已關閉防火牆
2.已關閉selinux
3.已關閉NetworkManager
4.已配置固定的ip地址
5.yum配置好
實施:
systemctl status firewalld
systemctl stop firewalld 臨時關閉防火牆
systemctl disable firewalld
getenforce 查selinux狀態
setenforce 0 臨時設置selinux狀態爲permissive寬容模式(立即生效)
sed -i 's/=enforcing/=disabled/' /etc/selinux/config 修改配置文件(reboot重啓生效)

systemctl restart network 重啓網絡服務
ifconfig 或 ip a 查IP地址
ifconfig ens33:0 192.168.10.8 給ens33網卡臨時添加一個新IP地址,:0爲虛擬接口
ifconfig ens33:1 192.168.10.9

測試yum源是否可用:
yum clean all
yum repolist

附加練習:修改虛擬機的主機名(計算機名)。操作如下。
hostname server.up.com 臨時修改主機名爲server.up.com(立即生效)
bash 開啓新的命令行解釋器(命令界面)
vim /etc/hostname 修改後的內容如下(永久生效,但必須reboot重啓纔會生效)
server.up.com 新主機名。
環境:
服務器(虛擬機) ip:192.168.10.7 主機名:server.up.com
客戶端(物理機) ip:192.168.10.1 主機名:client.up.com

ssh客戶端遠程連接ssh服務器:ssh 用戶名@主機IP
例:ssh [email protected] 回車後輸入root密碼即可

服務器:
查看軟件包是否安裝

rpm -qa | grep openssh

openssh-clients-5.3p1-94.el6.x86_64 客戶端
openssh-server-5.3p1-94.el6.x86_64 服務器端
openssh-5.3p1-94.el6.x86_64 軟件包套件
工作模式:c/s架構 即C客戶端---》S服務器

端口:22 查:netstat -atnlp | grep :22 或 lsof -i :22

1.安裝軟件包
yum install openssh-server -y

查看軟件包安裝產生的文件
rpm -ql openssh-server
/etc/pam.d/sshd pam認證(登錄的身份驗證規則)
/etc/rc.d/init.d/sshd 啓動腳本(centos6)
/usr/lib/systemd/system/sshd.service 啓動腳本(centos7)
/etc/ssh/sshd_config 主配置文件
/etc/sysconfig/sshd 腳本的配置文件
/usr/sbin/sshd 守護進程
/usr/sbin/sshd-keygen 服務器端的密鑰生成器
/usr/libexec/openssh/sftp-server sftp服務端(ssh的文件共享服務)
/usr/share/doc/openssh-server-5.3p1 幫助文檔
2.配置服務
rpm -qc openssh-server 查軟件的配置文件
cat -n /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 //密碼爲空不能登陸
PasswordAuthentication yes
#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)

3.啓動服務
centos6的操作:
/etc/rc.d/init.d/sshd start /etc/init.d 是/etc/rc.d/init.d的軟連接
/etc/init.d/sshd start
service sshd restart
開機啓動:chkconfig sshd on

centos7的操作:
systemctl restart sshd.service
開機啓動:systemctl enable sshd.service

通過端口排錯
netstat -tulnp | grep sshd
-t tcp協議
-u udp協議
-l listening
-n 以數字方式顯示 不把端口翻譯爲協議
-p 進程名

lsof -i:22 //有返回值表示服務處於監聽狀態

客戶端:
1.安裝軟件包
rpm -qa | grep openssh 查
yum install openssh-clients -y 裝

查看軟件包安裝產生的文件
rpm -ql openssh-clients
/etc/ssh/ssh_config //配置文件
/usr/bin/scp //遠程拷貝
/usr/bin/sftp //sftp客戶端
/usr/bin/ssh //遠程連接
/usr/bin/ssh-add //密鑰傳遞失敗用此命令
/usr/bin/ssh-copy-id //傳遞密鑰
/usr/bin/ssh-keyscan //密鑰掃描

rpm -ql openssh
/usr/bin/ssh-keygen //客戶端的密鑰生成器

客戶端進行管理
遠程管理
查幫助:man ssh

ssh 192.168.10.7 默認以當前系統用戶的身份遠程登錄到192.168.10.7的服務器

usage: ssh [-l login_name] hostname | user@hostname [command]
-l login_name
指定登錄遠程主機的用戶.
ssh -l tom 192.168.1.252 //以tom用戶的登陸
ssh [email protected] //以tom用戶的登陸

-v 顯示連接過程

臨時在服務器上做指定的操作(遠程執行命令)
ssh 192.168.10.7 ip a
ssh 192.168.1.252 useradd jim

-p port (publickey,gssapi-keyex,gssapi-with-mic,password).

指定遠程主機的端口.
ssh 192.168.1.250 -p 2250 注:此測試,要先將ssh服務器的sshd_config配置文件設置Port 2250,重啓sshd服務後再遠程連接

-X 允許 X11 轉發.

可以在遠程系統上使用本地圖形化的配置

服務端需要開啓相關的功能
X11Forwarding yes (publickey,gssapi-keyex,gssapi-with-mic,password).
開啓X11轉發協議

客戶端啓用X11協議
ssh -X 192.168.10.7

遠程複製
用法:scp -r 來源 目標
把服務器上的/opt目錄拷貝到本地的/tmp目錄 下載

scp -r 192.168.10.7:/opt/ /tmp

把本地文件/etc/*.conf上傳到服務器/tmp/

scp -r /etc/*.conf [email protected]:/tmp/

#驗證:ssh [email protected] ls /tmp
遠程清空tmp目錄:ssh [email protected] 'rm -rf /tmp/*' 注:命令必須用引號括起來

-r 遞歸執行,用於複製目錄
-v 顯示過程
-p 保留源文件屬性


安全無密碼連接
密鑰(雙機互信)
如果客戶端連接服務器無需密碼。客戶端上需要生成一對密鑰(公鑰、私鑰),公鑰傳給服務器,那麼服務器收到公鑰,客戶端連接服務器就不需要密碼。

客戶端配置(192.168.10.1或192.168.8.?):
1.生成密鑰
ssh-keygen

root用戶的密鑰位置
cd /root/.ssh
id_rsa 私鑰(自己 (publickey,gssapi-keyex,gssapi-with-mic,password).
用)
id_rsa.pub 公鑰 (給別人的)
known_hosts 指紋(ssh服務器自動傳過來的公鑰)

2.把公鑰發給服務器上的node1用戶:
ssh-copy-id [email protected] 回車後輸入node1用戶的密碼

ssh-copy-id -i id_rsa.pub 192.168.1.252

公鑰信息保存在ssh服務器的/home/node1/.ssh/authorized_keys

3.測試客戶端連接服務端不需要密碼
ssh [email protected]

常見錯誤:
1.

ssh 192.168.1.252 //出錯

ssh: connect to host 192.168.1.252 port 22: No route to host
1.檢測是否有ip地址
2.檢測服務器和客戶端是否能ping通
3.檢測網卡連接方式

2.做雙擊互信。連接任然還要密碼
遠程連接時報如下錯誤,請在客戶機上執行ssh-add後再連。

ssh-add 密鑰傳送失敗選者此命令

3.網絡服務正常無法連接
rm -rf ~/.ssh/known_hosts

登陸的歷史記錄:
last
lastlog

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章