1. 程式人生 > 其它 >SSh遠端管理

SSh遠端管理

SSh遠端管理

SSh遠端管理

ssh服務的概述

什麼是ssh

SSH是一個安全協議,在進行資料傳輸時,會對資料包進行加密處理,加密後在進行資料傳輸,確保了資料傳輸安全。

ssh服務作用

1.提供遠端連線伺服器的服務

2.對傳輸的資料進行加密

ssh相關命令

SSH有客戶端與服務端,我們將這種模式稱為C/S架構,ssh客戶端支援Windows、Linux、Mac等平臺。
在ssh客戶端中包含 ssh|slogin遠端登陸、scp遠端拷貝、sftp檔案傳輸、ssh-copy-id祕鑰分發等應用程式。

1.遠端連線命令

ssh [email protected] -p 52022
ssh:命令
root:要用哪個使用者連線(遠端伺服器的系統使用者)
@:分隔符
39.104.203.184:遠端主機的IP
-p:指定ssh的終端

[root@m01 ~]# ssh [email protected]
Last login: Fri Jul  9 19:12:25 2021 from 10.0.0.61
[root@web01 ~]# 

2.在遠端機器上執行命令,不用連線過去

[root@m01 ~]# ssh [email protected] 'df -h'
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.4G   18G   8% /
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.7M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda1       497M  120M  378M  25% /boot
tmpfs            98M     0   98M   0% /run/user/0

[root@m01 ~]# ssh [email protected] 'free -m'
              total        used        free      shared  buff/cache   available
Mem:            972          91         763           7         116         737
Swap:          1023           0        1023

3.遠端拷貝(全量)走的是ssh協議

[root@web02 ~]# scp -rp /var/www/html [email protected]:/tmp
[root@backup ~]# ll /tmp/
drwxr-xr-x  3 root root 106 Jul  9 02:12 html
-r:遞迴拷貝
-p:保持檔案的時間屬性
-P(大寫):指定埠
-l:限速

## 總結
1.scp通過ssh協議加密方式進行檔案或目錄拷貝。
2.scp連線時的使用者作為為拷貝檔案或目錄的許可權。
3.scp支援資料推送和拉取,每次都是全量拷貝,效率較低

SSH驗證方式

建立祕鑰對

[root@m01 ~]# ssh-keygen
[root@m01 ~]# ll ~/.ssh/
## 私鑰(鑰匙)
-rw-------. 1 root root 1679 Jul  9 18:48 id_rsa
## 公鑰(鎖)
-rw-r--r--. 1 root root  390 Jul  9 18:48 id_rsa.pub
## 記錄身份,第一次登陸客戶端需密碼,第二次登陸無需密碼
-rw-r--r--. 1 root root  682 Jul  9 19:12 known_hosts

## 將公鑰傳送給被管理端
[root@m01 ~]# ssh-copy-id  -i ~/.ssh/id_rsa.pub  [email protected]

-i:指定下發公鑰的路徑

## 被管理端伺服器公鑰
[root@web02 ~]# ll /root/.ssh/
# 公鑰
-rw------- 1 root root 390 Jul  9 19:11 authorized_keys

ssh-copy-id這個命令做了哪些事

# 1.在被管理端家目錄建立了一個.ssh的隱藏目錄
[root@web02 ~]# mkdir /root/.ssh

# 2.將.ssh目錄許可權改為700
[root@web02 ~]# chmod 700 .ssh/
 
# 3.建立公鑰存放的檔案
[root@web02 .ssh]# vim authorized_keyssh-rsa 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCngoqU5oUWIiJtqw1e/MUwDLB7c/Br5L6I2fy6ri1KZyw3OuBd4Lv+5v3yNRlLW3ic5k8eFsJQhe6TSUHCE2GvIZUa6QgVpVBIKPFPypOYuBtFa4mPKTlSpIXxXqmDhdataU2Heur4sYC5zkgreiRtqu4+VjYxJ0EacH7Y1clQpCtRNrTW+szMMhBTlOhh5cEh9s/y2HDzBwH2/rZ5trbMyVbmwrugjhsz5ZPUu203bMt9sqNX80gkdvtEBCsf16Tu6f8b4xsST/yZgLV13hYiVFkJB+ESGM0/CTr1uc1JUDuLEVIb3AmyYNAc2KtiGdmaadalAORL7H2P0+tQr/a1 root@m01

# 4.修改公鑰存放檔案的許可權
[root@web02 .ssh]# chmod 600 ~/.ssh/authorized_keys

ssh安全優化

SSH作為遠端連線服務,通常我們需要考慮到該服務的安全,所以需要對該服務進行安全方面的配置。
1.更改遠端連線登陸的埠
2.禁止ROOT管理員直接登入
3.密碼認證方式改為金鑰認證
4.重要服務不使用公網IP地址
5.使用防火牆限制來源IP地址

修改配置檔案

[root@m01 ~]# vim /etc/ssh/sshd_config
## 埠
17 Port 6666
## 允許root登入
38 PermitRootLogin no
## 允許密碼登入
65 PasswordAuthentication no
## GSS介面認證                    現在改動
79 GSSAPIAuthentication no
## 使用DNS的反向解析               現在改動                 
115 UseDNS no

## 重啟ssh服務
[root@m01 ~]# systemctl restart sshd